Lastest

背包九讲1之01背包

九个问题 01背包 完全背包 多重背包 混合背包 二维混合背包 分组背包 背包问题求方案熟 求背包问题的方案 有依赖的背包 感谢: https://www.youtube.com/watch?v=nleY0-eexps 01背包 问题描述 问题描述 有N件物品和一个容量V的背包,第i件物品体积vi,价值是wi. 求解将那些物品装入背包,可是这些物品总体积不超过背包容量,且总价值最大 输入格式 第一行两个整数, N和V, 用空格隔开, 分别表示物品数量和背包容积 接下来有N行, 每行有两个整数vi, wi, 分别表示第i件物品的体积和价值 输出格式 一个整数, 表示最大价值 数据范围 0 < N, V <1000 0 < vi, wi < 1000 输入样例 4 5 1 2 2 4 3 4 4 5 输出样例 8 算法分析 我们用一个二维数组f[n][m]存储所有状态,n表示商品总数,m表示背包容量。m,n > 0 f[i][j]表示只考虑前i个物品,总体积是j的情况下,总价值最大是多少 i,j取值范围 0<i<=n, 至少一个商品,之多n个商品; 0<=j<=m,重量最小可以是0(刚好用完),最大可以是m 如何求解f[i][j]? 对于每一个f[i][j], 我们哟两种选择, 不选择它或者选泽它。 不选第i个商品...

使用phinx做database migration

安装 使用compose安装, 命令 php composer.phar require robmorgan/phinx 项目根目录创建db/migrations文件夹,然后执行如下命令(windows系统) λ vendor\bin\phinx init 此时根目录生成了phinx.yml文件。打开修改数据库连接信息,此处我们只设置development数据库连接 paths: migrations: '%%PHINX_CONFIG_DIR%%/db/migrations' seeds: '%%PHINX_CONFIG_DIR%%/db/seeds' environments: default_migration_table: phinxlog default_database: development production: adapter: mysql host: localhost name: production_db user: root pass: '' port: 3306 charset: utf8 development: adapter: mysql table...

c++虚函数和多态

本实验通过两组实验来对比virtual对函数执行情况的影响。第一组实验用于验证virtual关键字对析构函数执行顺序的影响。第二组实验用于virtual关键字对一般函数执行的影响。 实验1:virtual析构函数 类结构:假设有基类A,A有派生类B1和B2,B2有派生类B3。 我们用三组实验来对照virtual关键字对析构函数执行的影响 基类A的析构函数~A不加virtual关键字,子类B1析构函数加virtual,子类B2析构函数不加virtual 基类A的析构函数~A加virtual关键字,子类B1析构函数加virtual,子类B2析构函数不加virtual,子类B3析构函数不加virtual 基类A的析构函数~A加virtual关键字,子类B1析构函数加virtual,子类B2析构函数加virtual 实验1.1 基类A的析构函数~A不加virtual关键字,子类B1析构函数加virtual,子类B2析构函数不加virtual #include <iostream> using namespace std; class A{ public: ~A(); }; A::~A(){ cout<<"destruct A"<<endl; } class B1 : public A{ public: virtual...

php in_array的坑以及其实现

先来看一段代码 <?php $array = ["a", "b", "c"]; var_dump(in_array(0, $array)); 这东西的输出是true, 虽然数组里并没有0 $array = ["a", "b", "c"]; var_dump(in_array(0, $array, true)); 这东西的输出是false!!! 文档 http://php.net/manual/en/function.in-array.php 很简单没啥可说的 in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] ) : bool 源码 https://github.com/php/php-src/blob/master/ext/standard/array.c /* {{{ proto bool in_array(mixed needle, array haystack [, bool strict]) Checks if the given value exists in the array */ PHP_FUNCTION(in_array) { php_search_array(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0); } /* ...

godaddy生成ssl证书

生成crt和private key openssl req -new -newkey rsa:2048 -nodes -keyout your_domain_name.key -out your_domain_name.csr 打开godaddy把生成的your_domain_name.csr提供给godaddy。godaddy会去生成证书。 下载godaddy证书。两个文件,一个大概叫做85814333f334c3c5d.crt,另一个大概叫做叫做gd_bundle-g2-g1.crt。把两个文件上传到服务器某一目录下。执行如下操作合并两个文件 cat 85814333f334c3c5d.crt gd_bundle-g2-g1.crt >> your_domain_name.cst 打开nginx网站配置文件,加入 listen 443 ssl http2; ssl on; ssl_certificate /存储路径/your_domain_name; ssl_certificate_key /存储路径/your_domain_name.cst; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers "...

OpenCart 3.x使用SwiftMailer发送邮件

描述 使用系统内置SMTP(system/library/mail/smtp.php)发邮件过程中,html邮件内容总是无法正确处理。 分析 OpenCart 3.x发邮件相关代码结构 mail接口 <?php // system/library/mail.php /** * @package OpenCart * @author Daniel Kerr * @copyright Copyright (c) 2005 - 2017, OpenCart, Ltd. (https://www.opencart.com/) * @license https://opensource.org/licenses/GPL-3.0 * @link https://www.opencart.com */ /** * Mail class */ class Mail { protected $to; protected $from; protected $sender; protected $reply_to; protected $subject; protected $text; protected $html; protected $attachments = ...

基于Swoole重构OpenCart启动代码后性能测试

状况 打开webbench测试,200客户端,60秒。并发只有265page/min。 [root@li1205-86 ~]# webbench -c 500 -t 60 http://swoole-opencart.shyclouds.com/ Webbench - Simple Web Benchmark 1.5 Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software. Benchmarking: GET http://swoole-opencart.shyclouds.com/ 500 clients, running 60 sec. Speed=265 pages/min, 82524 bytes/sec. Requests: 265 susceed, 0 failed. 整体CPU利用率只有10%-15%。 解决 代码问题 开了8个进程,也启动了8个进程,但实际只有1个进程在干活。 一通google发现Swoole\Http\Server启动参数设置不对. $http = new Server("127.0.0.1", 9000, SWOOLE_PROCESS, SWOOLE_SOCK_TCP); $http->set(array( 'task_worker_num' =>...

OpenCart 3.0基准测试

本片旨在测试当前环境下,opencart的benchmark。以方便对比后续常驻内存swoole版本的性能,得出优化成果。 环境 web server,单台1核2g内存VPS 数据库MySQL 5.6,单独一台2核4g内存vps 在database上发起webbench测试 测试准备 关闭opencart模板编译,关闭sccs编译 SET SQL_SAFE_UPDATES = 0; UPDATE oc_setting SET value=1 WHERE `key` = "developer_theme"; UPDATE oc_setting SET value=1 WHERE `key` = "developer_sass"; SET SQL_SAFE_UPDATES = 1; databse server上安装webbench。安装方法参照上一篇文章 开始测试 测试100 clients,60 seconds webbench -c 100 -t 60 http://swoole-opencart.shyclouds.com/ 开着top看了下webserver的反应,nginx占37%cpu,php-fpm八进程平均1%cpu。我这是在给nginx做压测。。。 重新运行测试,试图打开网站,然而网站此时已经nginx 502错误了。 解决办法 调大ngin...

swoole常驻内存性能优势

安装swoole 下载安装最新版本swoole 4.2.13 # 下载 wget https://github.com/swoole/swoole-src/archive/v4.2.13.tar.gz # 解压进入 tar -xzvf v4.2.13.tar.gz cd swoole-src-4.2.13 # 编译参数: ./configure --with-php-config=/usr/local/php/bin/php-config --enable-openssl --enable-http2 --enable-sockets --enable-mysqlnd # 安装 make & make install # 加入php.ini extension=swoole.so # php.ini disable_functions中去掉以下函数 proc_open, proc_get_status 安装压测工具webbench 局域网内另外一台服务器上安装webbench # 安装ctag先 yum install ctags wget http://blog.s135.com/soft/linux/webbench/webbench-1.5.tar.gz tar zxvf webbench-1.5.tar.gz cd webbench-1.5 ...

MySQL主从数据库同步设置

需求背景 我自己blog被墙,而我希望国内能正常访问,同时我自己写blog也不要太卡。刚好手头有一台国内闲置VPS。 所以决定这么折腾一下: 阿里云智能解析,境外访问解析到linode server; 国内访问,解析到腾讯云。 我日常写博客自然是写到linode server的数据库,我不可能手动同步俩数据库,所以设置数据库master slave吧 下面记录下如何设置master slave 找到数据库配置文件位置 找到mysql配置文件my.cnf的位置 # mysql --help|grep 'my.cnf' .... 本文假设配置文件位置:/etc/my.cnf 设置master 修改mysql配置文件/etc/my.cnf 开启master模式,server-id=1 log-bin = mysql-bin # 日志文件名称 server-id = 1 # 主数据库 ID = 1 binlog-do-db = game # 只同步game数据库 # 忽略mysql,performance_schema和information_schema三个库 binlog-ignore-db = mysql binlog-ignore-db = performance_schema binlog-ignore-db = in...