Fork me on GitHub
摘要: 混合三种背包问题。定义:dp[i][k]表示体积为k的时候,在前i堆里拿到的最大价值。第一类,至少选一项,dp初值全赋为负无穷,这样才能保证不会出现都不选的情况。dp[i][k] = max(dp[i][k],max(dp[i-1][k-c]+g,dp[i][k-c]))其中:dp[i][k]是不选... 阅读全文
posted @ 2014-05-31 20:58 whatbeg 阅读(301) 评论(0) 推荐(0)
摘要: 定义:1.dp[u][1]表示u这个点设立糖果发放点且u这棵子树满足条件时的最少糖果点数2.dp[u][0]表示u这个点不设立发放点且u这棵子树满足条件时的最少糖果点数设v1,v2……vn为u的子节点,则转移方程:dp[u][1]= sum(min(dp[vi][1],dp[vi][0]) )+1;... 阅读全文
posted @ 2014-05-31 20:57 whatbeg 阅读(264) 评论(0) 推荐(0)
摘要: 环状合并石子问题。环状无非是第n个要和第1个相邻。可以复制该行石子到原来那行的右边即可达到目的。定义:dp[i][j]代表从第i堆合并至第j堆所要消耗的最小体力。转移方程:dp[i][j]=min(dp[i][k]+dp[k+1][j]+sum[i][j]);复杂度:O(n^3)。可考虑四边形优化。... 阅读全文
posted @ 2014-05-31 20:56 whatbeg 阅读(487) 评论(0) 推荐(0)
摘要: 将方格的摆放分成两种:1.水平摆放:此时所占的两个格子都记为1。2.竖直摆放:此时底下那个格子记为1,上面那个记为0。这样的话,每行都会有一个状态表示。定义:dp[i][s]表示考虑已经填到第i行,这一行状态为s的方法数转移:dp[i][s] = dp[i][s]+dp[i-1][s'] (s'为上... 阅读全文
posted @ 2014-05-31 20:47 whatbeg 阅读(383) 评论(0) 推荐(1)
摘要: 定义:cnt[L][K]表示长度为L,最高位为K的满足条件C的个数。首先预处理出cnt数组,枚举当前长度最高位和小一个长度的最高位,如果相差大于2则前一个加上后一个的方法数。然后给定n,计算[1,n-1]中满足条件C的数的个数。设有K位数,则不足K位的累加,然后枚举K位数的情况,从高位到低位枚举,每... 阅读全文
posted @ 2014-05-31 20:46 whatbeg 阅读(326) 评论(0) 推荐(0)
摘要: CF原题由题可知,n,m太大,无法开出dp[n][m]的数组。观察发现s/e最大为300,也就是说,选用第一种操作的次数不会超过300。于是定义dp[i][j],第一个串的前i个数,使用了j次第一种操作的时候,第二个串最少删了多少个数。转移有两种情况:1.当前位置不删,这时dp[i][j]=dp[i... 阅读全文
posted @ 2014-05-31 20:45 whatbeg 阅读(320) 评论(0) 推荐(0)
摘要: 定义:dp[i][j]为状态为j时,第i行符合条件的状态数转移方程:dp[i][j] += dp[i-1][t] //t为上一行状态,与当前行不冲突。从第一行开始向下枚举,每次枚举当前行的状态和上一行的状态,如果不相邻或者未被地雷占据并且两行的关系是合法的,则加上方法数。最后res = SUM(d... 阅读全文
posted @ 2014-05-31 20:44 whatbeg 阅读(288) 评论(0) 推荐(0)
摘要: LRJ黑书上的例题。化简均方差公式:均值的平方一定,所以只需让矩形的总分的平方和最小即可。定义:dp[k][x1][y1][x2][y2],以(x1,y1)为左上角坐标,(x2,y2)为右下角坐标的矩形,切割K次以后得到的k+1块举行的总分平方和的最小值转移方程:(分成横割和竖割)dp[k][x1]... 阅读全文
posted @ 2014-05-31 20:43 whatbeg 阅读(349) 评论(0) 推荐(0)
摘要: 定义dp[i][j]表示第i天手中有j股股票时,获得的最多钱数。转移方程有:1.当天不买也不卖: dp[i][j]=dp[i-1][j];2.当天买了j-k股: dp[i][j]=max(dp[r][k]+(j-k)*Ap[i]); (r=1,所以i>w+1时才能转移,这是i#include #in... 阅读全文
posted @ 2014-05-31 20:42 whatbeg 阅读(411) 评论(0) 推荐(0)
摘要: 设FA为A的牌中数字异或和,FB为B的。则有性质:ans = (所有的(A&B=0)个数 + (FA=FB且A&B=0)的个数)/2。即所有的FA>FB的个数(除2是因为这里FA>FB的个数等于FA#include #include #include #include using namespace... 阅读全文
posted @ 2014-05-31 20:41 whatbeg 阅读(419) 评论(0) 推荐(0)
摘要: 题意:即求给定n个数字(a1,a2,……an),不改变序列,分成M份,使每一份和的乘积最大。思路:dp[i][j]表示把前i个数字,分成j份所能得到的最大乘积。转移方程:dp[i][j] = max{ dp[k][i-1]*sum(k+1,j) } 其中显然j#include #include #i... 阅读全文
posted @ 2014-05-31 20:40 whatbeg 阅读(318) 评论(0) 推荐(0)
摘要: A.爱管闲事http://www.cnblogs.com/whatbeg/p/3762733.htmlB.轻音乐同好会C.温泉旅馆http://www.cnblogs.com/whatbeg/p/3762735.htmlD.摩天轮E.生日礼物http://www.cnblogs.com/whatbe... 阅读全文
posted @ 2014-05-31 19:21 whatbeg 阅读(233) 评论(0) 推荐(0)