区间动规经典(水题)大合集
2016-05-18 21:24
399 查看
数字三角形
最长公共子序列
采药(背包)
#include<cmath> #include<cstdio> #include<string> #include<cstdlib> #include<cstring> #include<iostream> #include<algorithm> #define MAXN 100 using namespace std; int n,dp[MAXN+10][MAXN+10],tri[MAXN+10][MAXN+10]; void init(){ cin >> n; for (int i = 1; i <= n; i++) for (int j = 1; j <= i ;j++) scanf("%d",&tri[i][j]); memset(dp,0,sizeof dp); for (int i = 1; i <= n; i++) dp [i] = tri [i]; } void DP(){ for (int i = n-1; i >= 1; i--) for (int j = 1; j <= i; j++) { int max = tri[i][j] + dp[i+1][j]; if (dp[i+1][j+1] + tri[i][j] > max) max = dp[i+1][j+1] + tri[i][j]; dp[i][j] = max; } cout << dp[1][1] ; } int main(){ init(); DP(); return 0; }
最长公共子序列
#include<cmath> #include<cstdio> #include<string> #include<cstdlib> #include<cstring> #include<iostream> #include<algorithm> #define MAXN 200 using namespace std; int n,dp[MAXN+10][MAXN+10]; char X[MAXN+10],Y[MAXN+10]; void init(){ cin >> X; cin >> Y; memset(dp,0,sizeof dp); } int lcs(int m, int n){ for (int i = 1; i <= m; i++) for (int j = 1; j <= n; j++) { if (X[i-1] == Y[j-1]) dp[i][j] = dp[i-1][j-1] + 1; else dp[i][j] = max(dp[i-1][j], dp[i][j-1]); } return dp[m] ; } int main(){ init(); cout << lcs(strlen(X),strlen(Y)); return 0; }
采药(背包)
#include<cmath> #include<cstdio> #include<string> #include<cstdlib> #include<cstring> #include<iostream> #include<algorithm> #define MAXN 1000 using namespace std; int T,M; int v[MAXN+10],w[MAXN+10],dp[MAXN+10][MAXN+10]; void init(){ cin >> T >> M ; for (int i = 1; i <= M; i++) scanf("%d%d",&v[i],&w[i]); } int f(int T, int n){ for (int i = 0; i <= T; i++) dp[i][0] = 0; for (int i = 1; i <= n; i++) for (int j = 0; j<= T; j++) { dp[j][i] = dp[j][i-1]; if (j >= v[i] && dp[j-v[i]][i-1] + w[i] > dp[j][i]) dp[j][i] = dp[j-v[i]][i-1] + w[i]; } return dp[T] ; } int main(){ init(); cout << f(T,M); return 0; }
相关文章推荐
- 归并排序算法(排序详解)
- THUCTC源码解读(二)
- 【HYSBZ 1503: [NOI2004]】郁闷的出纳员——伸展树
- 练习打字第十一天!
- 使用jetty-maven-plugin插件进行测试
- 解决MYSQL出现 Can't create/write to file 'C:/WINDOWS/TEMP/#sql_5c0_0.MYD'
- 利用java与链表的实现与应用
- 【BZOJ1051】受欢迎的牛,tarjan缩点重构图
- LaTeX技巧003:enumerate环境设置缩进
- 【BZOJ-4591】超能粒子炮·改 数论 + 组合数 + Lucas定理
- 第十二周技术博客
- PHP AJAX返回 "TEXT"
- 解码H264文件的一些基础知识
- 极角排序
- Java文件流 字节流和字符流
- 深入浅出: Java回调机制(异步)
- 我的Unity3D学习日记-01
- JAVA获取本机IP地址
- 从头认识多线程-2.23 静态内部类的同步机制跟普通类相同
- Try Git 译文