DP
night_watcher
这个作者很懒,什么都没留下…
展开
-
POJ 1742 Coins(多重背包|单调队列优化)
用二分拆包就TLE了,学了个单调队列优化,具体东西写在代码的注释中。 奋战LTC的男人八题,两天两道题,成为1/4男人,3/4不明生物,所以。。。。至今情况不知道算是阴阳人还是人妖。。。。 底下的如果没解完八题的仔细琢磨下再喷我。。。。 /* 这是我至今遇到的最恶心的多重背包,居然可以把二分拆包卡掉,ORZ LTC。。。 不过确实很有意思,题意为有n种钱币,每种钱币面值a[i原创 2013-08-07 10:47:19 · 582 阅读 · 0 评论 -
POJ 1014 Dividing(DP)
简直弱到不行,想用单调队列优化秀操作居然还给写错了WA了好几次,怎一个弱字了得。。。。 #include #include using namespace std; int a[7]; bool dp[120010]; int main(){ int i,j,cas=1; while(1){ memset(dp,0,sizeof(dp)); i原创 2013-08-09 20:56:35 · 391 阅读 · 0 评论 -
CF 10D - LCIS 区间DP
原题:http://codeforces.com/problemset/problem/10/D 题意:找到两个串的最大上升子串·。 解法:dp[ i ] [ j ]表示第一个串到i第二个串到j且以j结束的最长上升子串的长度,那么: if(s1[ i ]!=s2[ j ]) dp[i][j]=dp[i-1][j]; else dp[i][j]=1+max(dp[i-1][k]); (原创 2013-08-26 21:19:21 · 454 阅读 · 0 评论 -
CF 339C Xenia and Weights 背包
地址:http://codeforces.com/contest/339/problem/C 题意:给1-10种重量的砝码,求一个序列,左右依次放,每次放后天平的倾斜会改变且连续两个数不相等。 解法: 比赛时候脑残YY个贪心,然后怒跪,叉姐说了是背包,当时居然毫无感觉。 dp[n][sum][last]表示第n轮放的天平的值是sum,而最后一个放的砝码是last,那么,一个裸背包诞生了,注原创 2013-08-27 10:52:47 · 804 阅读 · 0 评论 -
POJ 1661 Help Jimmy(DP)
地址:http://poj.org/problem?id=1661 解法:这题说穿了还真没什么难的,将所有线段按高度排序,然后dp求解一个lefttime[i],righttime[i]分别表示从i线段左端跳下去和右端跳下去的最短落地时间(如果会摔死直接返回MAX),既然保证有解也就不用判断MAX了。 PS:为什么要把这题贴出来呢?因为我昨天晚上居然傻逼呵呵的先用线段树去求每个端点的下一个线段原创 2013-08-28 17:34:57 · 391 阅读 · 0 评论