![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
dp
文章平均质量分 66
wmj_
这个作者很懒,什么都没留下…
展开
-
[Usaco 2011 Dec]Umbrellas for Cows
题目大意: FJ的N ( 1 输入数据 第1行:两个用空格隔开的整数: N和M 这题就是一道裸dp,先按坐标排序 然后记f[i]表示覆盖前i个牛需要多少钱 f[i]=min{f[j-1]+cost[a[i]-a[j]+1]) 1 附代码 #include #include #include #include const int maxn=5010,maxm原创 2013-10-29 11:22:56 · 870 阅读 · 0 评论 -
[Shoi2005]带限制的最长公共子序列
这题就是求最长有条件的上升子序列,n很小只有500,可以承受O(n^3) 于是我们设f[i][j][k]代表第一串匹配到i,第二串匹配到j,已满足前k个条件 转移方程很好想,就不多述了 空间问题也就用滚动数组就OK了 #include #include #include #define updata(a,b) a=max(a,b) #define f(i,j,k) f[(i)&原创 2013-10-29 21:28:14 · 1057 阅读 · 0 评论 -
Pku2376 Cleaning Shifts
题目大意:给你一些线段的起止点,问你最少用多少条线段可以把一段区间覆盖 线段数 1、spfa+离散化+SLF即可,直接上代码 #include #include #include #include const int maxn=1000010,maxm=2000010; using namespace std; int st,ed,tot=0; int f[maxn],no原创 2013-10-30 20:17:03 · 683 阅读 · 0 评论