![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划
青禾script
这个人太弱,所以也不知道能写什么23333
展开
-
[BZOJ 2021] Usaco 2010 Cheese Towers · 动态规划
一开始还以为有点难度结果发现其实挺简单的。我们就做两次背包,第一次处理全部为小奶酪的状况;第二次处理有大奶酪的情况:根据题意,每个奶酪只会被压缩一次,所以为了尽可能使塔的高度小,肯定是将其中一个大奶酪放在最上方,那么把一个大奶酪i放在塔顶后剩下的高度就是T-h[i],在这个空间里所有的奶酪都是4/5,所以我们再做一次背包,然后枚举大奶酪,用f[T-h[i]]来更新ans。塔顶的奶酪不一定就原创 2015-04-05 22:48:32 · 622 阅读 · 0 评论 -
[BZOJ 1025] SCOI 2009 游戏 · 动态规划
首先提醒一下记得开long long一开始没看出来是个DP愣是想了半天T^T首先我们打个表找规律:如果再手推几个数就不难发现对于一个数i,如果把i拆成p+q,p的一种排数是s1,q的一种排数是s2,那么i的一种排数就是lcm(s1,s2)那么我们假设把i所有可能的排数全部存到p[i]里,那么对于任意一个p[i][j],一定有p[i][j]=lcm(p[i'][j'],p[i原创 2015-04-08 21:28:29 · 445 阅读 · 0 评论 -
[BZOJ 1260] CQOI 2007 涂色paint · 动态规划
f[i][j]表示i到j的最少染色次数,然后就是细节处理。#include #include #include #include using namespace std;char st[55];int n,f[55][55];int main(){ cin>>st+1;n=strlen(st+1); memset(f,10,sizeof f); for (int i=1原创 2015-05-03 23:05:45 · 629 阅读 · 0 评论 -
[BZOJ 1009] HNOI 2008 GT考试 · 动态规划+矩阵乘法+KMP
KMP预处理,矩阵乘法加速DP。刷了这么多矩阵乘法怎么感觉还是没什么进步。。。这题就算是一条比较好的用矩阵加速DP的题目了,感觉还是有点难度的可是为什么AC率那么高。。。难道是我太弱了么。。。还是就不要班门弄斧了,两个神犇的友链,写的很好:http://blog.csdn.net/popoqqq/article/details/40188173 http://blog.csdn原创 2015-04-04 11:37:20 · 862 阅读 · 3 评论 -
[BZOJ 1899] ZJOI 2004 Lunch 午餐 · 动态规划
按吃饭时间降序排序,然后动归,状态想到了就很简单了。#include #include #include #include using namespace std;const int N=205;struct arr { int x,y;}a[N];int n,f[N][N*N],s[N];bool cmp(const arr A,const arr B){ retu原创 2015-08-12 08:10:04 · 1194 阅读 · 0 评论 -
[BZOJ 3156] 防御准备 · 斜率优化DP
跟佣神(orz)请教了一番大概会了基础的斜率优化:基础的斜率优化一般就是两种情况:(斜率式子)i 且i单调减。对于第一种情况,也就是斜率单调增的,维护队头很好理解,维护队尾的时候,因为我们要保证斜率递增,所以如果(q[r],q[r-1])的斜率大于(i,q[r]),那么我们就把r给踢掉。第二种情况就直接反过来想就可以了。对于这题:f[i]表示在第i个点上放守卫塔,裸的方程为原创 2015-09-10 22:15:45 · 403 阅读 · 0 评论 -
[BZOJ 1010] HNOI 2008 玩具装箱toy · 斜率优化DP
第三次做这题终于A掉了,了结了一个心病。首先还是列出裸的DP方程:表示当前这个容器的末尾是第i个,上一个的末尾是第j个,si是对玩具长度做的前缀和。那么用斜率优化的话,我们还是设x>y且x优于y,可以得到这个式子:然后为了方便化简,我们设Ti=i+Si,P=L+1,就可以得到这个式子:这样就可以直接斜率优化搞了,如果斜率优化有不理解的可以看我的BZOJ 3156的题解,还是原创 2015-09-11 12:45:15 · 468 阅读 · 0 评论 -
[BZOJ 1597] Usaco2008 Mar 土地购买 · 斜率优化DP
拿到手的时候根本想不到是斜率优化。。。然而思路太神了。对于两块地x1*y1 x2*y2,如果x1这样我们可以得出平方级别的DP方程:现在开始斜率优化:假设j>k且j优于k,那么满足化简得到然后就随便写写呗~虽然各种奇葩错误WA了无数次#include #include #include #include using namespace std;#defin原创 2015-09-18 20:46:07 · 1364 阅读 · 0 评论 -
『Citric』天空中的繁星 · DP
天空中的繁星 天空中的繁星天空中的繁星 【问题描述】Lemon最近买了一台数码相机。某天Lemon很无聊,于是对着夜空拍了一张照片,然后把照片导入了电脑。Lemon想依靠电脑的力量,完成他小时候经常做却从来没有成功过的事情:数天空中有多少颗星星。Lemon已经把相片处理成了黑白的,也就是说,每个像素只可能是两个颜色之一,白或黑。Lemon定义像原创 2015-10-26 16:34:15 · 958 阅读 · 0 评论