2013年8月20日

HDU1059 二进制拆分优化多重背包

摘要: 1 /*问你能不能将给出的资源平分成两半,那么我们就以一半为背包,运行多重背包模版 2 但是注意了,由于个数过大,直接运行会超时,所以要用二进制拆分每种的个数*/ 3 #include 4 #include 5 #include 6 using namespace std; 7 int w[120005],vr[120005],dp[120005]; 8 int a[7],v[7]; 9 int numw;10 void cf(int n,int ok)11 {12 int i,j,sum,e;13 e=sum=1;14 while(sum0)22 {23 ... 阅读全文

posted @ 2013-08-20 16:00 ok_boy 阅读(354) 评论(0) 推荐(0) 编辑

HDU1087

摘要: 1 /*记忆化dfs+dp,因为每次最多走k步,所以上下左右的方向有所扩展, 2 dp[i][j]存的是从dp[i][j]出发能吃的最大个数*/ 3 #include 4 #include 5 #include 6 using namespace std; 7 const int maxn=110; 8 int map[maxn][maxn],vis[maxn][maxn]; 9 int dp[maxn][maxn];//dp[i][j]表示从i,j出的最大蛋糕数目10 int n,m,k;11 void init()12 {13 memset(dp,0,sizeof(dp));14... 阅读全文

posted @ 2013-08-20 00:00 ok_boy 阅读(338) 评论(0) 推荐(0) 编辑

导航