ZOJ - 2972 Hurdles of 110m
2015-12-03 20:24
423 查看
一共有三种dp方程。注意好初始化
#include <iostream> #include <cstdio> #include <cstdlib> #include <algorithm> #include <cstring> using namespace std; const int MAXN = 0x3f3f3f3f; struct s { int t1,t2,t3,f1,f2; }; s str[280]; int dp[280][280]; int main() { #ifdef LOCAL freopen("dd.txt", "r", stdin); #endif int t, m, n; while(~scanf("%d",&t)) { while(t--) { memset(dp, 0x3f, sizeof(dp)); memset(dp[0], 0, sizeof(dp[0])); scanf("%d%d", &n, &m); for(int i = 1; i <= n; i++) { scanf("%d%d%d%d%d", &str[i].t1, &str[i].t2, &str[i].t3, &str[i].f1, &str[i].f2); } for(int i = 1; i <= n; i++) { //fast for(int j = 0; j <= m; j++) { if(j >= str[i].f1) { dp[i][j - str[i].f1] = min(dp[i][j - str[i].f1],dp[i-1][j]+str[i].t1); } //normal dp[i][j] = min(dp[i][j],dp[i-1][j] + str[i].t2); //slow dp[i][min(j+str[i].f2, m)] = min(dp[i][min(j+str[i].f2, m)],dp[i - 1][j] + str[i].t3); } } int minin = MAXN; for(int i = 0; i <= m; i++) { minin =min(minin, dp[n][i]); } printf("%d\n", minin); } } return 0; }
相关文章推荐
- Linux驱动开发思维导图
- iOS开发之UIViewController属性
- Python利用结巴分词进行中文分词
- 线段树延迟标记精讲
- hdu 2874 Connections between cities
- java 试题java编译问题
- 加密解密系列文章之 - ASCII 加密解密(最简单的加密解密) 上
- iOS-UI父视图下视图的操作
- thinkphp3.2之url模式和后台模块之间的关系
- codeforces 603A. Alternative Thinking(数学找规律 或者 dp)
- RectTransform、Texture2d 绽放问题
- slf4j
- MySQL数据导出导入
- 深入理解Javac编译器
- ServerSocket学习1
- 大数据开发学习规划时间表记录及反思
- P53第五题
- PowerPoint
- 关于Highcharts图表组件动态修改属性的方法(API)总结之Series
- ArrayList<Integer> 中remove 方法调用的区分