摘要: 区间dp dp[i][j]存i->j区间的所有取值 然后枚举分割点,枚举两个存的值,分别运算存储。 看见这种不确定分割顺序,两个区间合并的情况,就要用区间dp。 #include<bits/stdc++.h> using namespace std; const int N = 60; int n, 阅读全文
posted @ 2017-07-15 21:33 19992147 阅读(103) 评论(0) 推荐(0) 编辑
摘要: dp 没想出来 最先开始想 dp[i][j][k]表示s匹配到i,t匹配到j,当前分了k段的方案数 s[i]==t[j] dp[i][j][k]+=dp[i-1][j-1][k-1] s[i]==t[j]&&s[i-1]==t[j-1] dp[i][j][k]+=dp[i-1][j-1][k] dp 阅读全文
posted @ 2017-07-15 21:04 19992147 阅读(145) 评论(0) 推荐(0) 编辑
摘要: dp 以前做过 忘了。 想破脑袋不知道怎么设状态 dp[i][j][k]表示选到第i个硬币,当前和为j,能否弄出k dp[i][j][k]|=dp[i-1][j][k]|dp[i-1][j][k-c[i]]|dp[i-1][j-c[i]][k-c[i]] 如果发现状态不行,就试着多加一维,也许就能搞 阅读全文
posted @ 2017-07-15 16:51 19992147 阅读(173) 评论(0) 推荐(0) 编辑
摘要: A 暴力查询,分三段查就可以了 #include<bits/stdc++.h> using namespace std; const int N = 110; int n, pos; int a[N]; int main() { scanf("%d", &n); for(int i = 1; i < 阅读全文
posted @ 2017-07-15 15:50 19992147 阅读(120) 评论(0) 推荐(0) 编辑
摘要: dp dp[i][j]表示到了i赢和输的差为j 如果这位是?向dp[i-1][j-1],dp[i-1][j],dp[i-1][j+1]转移,如果是W向dp[i-1][j-1]转移,如果是L向dp[i-1][j+1]转移,如果是D向dp[i-1][j]转移 #include<bits/stdc++.h 阅读全文
posted @ 2017-07-15 00:01 19992147 阅读(233) 评论(0) 推荐(0) 编辑