摘要: 题意: 3 5 3 1 2 5 2 2 1 3 2 2 第一行有3个数:n v k n 表示有n个物品,v 表示背包容量为v,k表示物品被划分为k类 接下来有n行 每一行有三个数 a b c a 表示该物品属于第a类,b表示该物品的费用,c表示该物品的价值 满足以下条件:1:每个物品最多能拿一次(即01背包) 2:每个类的物品至少拿一个(反分组背包)!! 求满足条件的 最大价值!!若无 输出 Impossible分析: 每组都进行01背包 dp[i][k]表示第i组 背包容量为k时的最大价值 ( 对于第i组物品 第j个物品)有 dp[i][k] = max{ dp[i]... 阅读全文
posted @ 2012-08-18 09:41 huhanwu 阅读(1089) 评论(0) 推荐(1) 编辑
摘要: SocketClient.cpp#include "SocketClient.h"#include "ClientInfoSave.h"#include "serverMsg.pb.h"using namespace Message;string SocketClient::m_strHeatMsg... 阅读全文
posted @ 2015-07-02 07:09 huhanwu 阅读(1518) 评论(0) 推荐(0) 编辑
摘要: int abs( int num ); 函数返回参数num.的绝对值。例如: double acos( double arg ); 函数返回参数arg的反余弦值。参数arg 应当在-1和1之间。 double asin( double arg ); 函数返回参数arg的反正弦值。参数arg 应当在-1和1之间。 double atan( double arg ); 函数返回参数arg的反正切值。 double atan2( double y, double x ); 函数计算y/x的反正切值,按照参数的符号计算所在的象限。 double ceil( double... 阅读全文
posted @ 2012-10-06 22:38 huhanwu 阅读(1521) 评论(0) 推荐(0) 编辑
摘要: 输入描述:输入第一行有一个n 表示接下来有n个命令接下来的每一行包括一个修改命令 包括一个 字符串命令和一个整数 或者一个求和命令: ( 其意思为: add x 将x插入的数组中,del x 从数组中删除,保持数组有序,保证不插入重复的不删除不存在的 sum 命令表示输出数组中顺序%5==3 的所有元素之和)输出描述: 输出每一个sum命令的结果输入样例:9add 1add 2add 3add 4add 5sumadd 6del 3sum输出样例:34#include <iostream>#include <cstdio>#include <cstring> 阅读全文
posted @ 2012-09-18 15:27 huhanwu 阅读(201) 评论(0) 推荐(0) 编辑
摘要: ST算法/*********************************title: poj1185http://acm.nyist.net/JudgeOnline/problem.php?pid=119problem: 士兵杀敌(三)algorithm: STtime: 2012-7-23write : HuHanwu*********************************/#include <iostream>#include <cstdio>#include <cmath>#define max(a,b) (a>b?a:b)... 阅读全文
posted @ 2012-08-03 16:44 huhanwu 阅读(169) 评论(0) 推荐(0) 编辑
摘要: //将物品安升序排序在进行背包处理效果会更好,如果能够先让01物品先背包处理在处理完全物品 效果更加明显#define MAXN 205000#define ANS -1 //背包数组初始化的值int d[MAXN]; //背包数组int v ; //背包容量int maxcost; //背包当前最大容量 void Initpack() //初始化背包 { d[0]=0; for(int i=1; i<=v; i++) d[i]=ANS;}void ZeroOnePack(int cost,int weigh... 阅读全文
posted @ 2012-08-03 16:33 huhanwu 阅读(124) 评论(0) 推荐(0) 编辑