hdu 4526 水DP
来源:互联网 发布:概率矩阵分解 视频 编辑:程序博客网 时间:2024/06/05 20:56
徘徊再对错边缘啊 这个也错了一次
状态很明显就是二维的 过去了几辆车 处理完了几个人 然后每次for循环更新即可
注意要分段啊
每段的人和每段的上车人数要分清楚
还有另外一种就是从全局进行考虑 然后把所有上车的人的时间计算进去
这样的也比较简单 可以少记录分段的时间差
首先是分段处理的方法:
#include<iostream>#include<cstdio>#include<algorithm>using namespace std;#define inf 999999999int main(){ int dp[111][111]; int n,k,d,s,ti,zi; int t;scanf("%d",&t); while(t--){ scanf("%d%d%d%d",&n,&k,&d,&s); for(int i=0;i<111;++i) for(int j=0;j<111;++j) dp[i][j]=inf; dp[0][0]=0; int past=0; for(int i=1;i<=k;++i){ scanf("%d%d",&ti,&zi); for(int j=0;j<=n;++j) if(dp[i-1][j]!=inf){ for(int z=0;z<=zi;++z){ if(j+z<=n){ dp[i][j+z]=min(dp[i][j+z],dp[i-1][j]+(ti-past)*(n-j)+(z==0?0:d));// printf("%d %d %d %d\n",i,j+z,z,dp[i][j+z]); } } } past=ti; } if(dp[k][n]==inf)printf("impossible\n"); else printf("%d\n",dp[k][n]); } return 0;}
然后是总体考虑的方法:
#include<iostream>#include<cstdio>#include<algorithm>using namespace std;#define inf 999999999int main(){ int dp[111][111]; int n,k,d,s,ti,zi; int t;scanf("%d",&t); while(t--){ scanf("%d%d%d%d",&n,&k,&d,&s); for(int i=0;i<111;++i) for(int j=0;j<111;++j) dp[i][j]=inf; dp[0][0]=0; for(int i=1;i<=k;++i){ scanf("%d%d",&ti,&zi); for(int j=0;j<=n;++j) if(dp[i-1][j]!=inf){ for(int z=0;z<=zi;++z){ if(j+z<=n){ dp[i][j+z]=min(dp[i][j+z],dp[i-1][j]+ti*z+(z==0?0:d)); // printf("%d %d %d %d\n",i,j+z,z,dp[i][j+z]); } } } } if(dp[k][n]==inf)printf("impossible\n"); else printf("%d\n",dp[k][n]); } return 0;}
0 0
- hdu 4526 水DP
- hdu 4856 水dp
- hdu 1160 dp水
- HDU 1003(水DP)
- HDU 2571 命运 水DP
- HDU 3555 水数位dp
- 【DP|水】HDU-2571 命运
- HDU 1087--DP--(水)
- HDU 4278 水~ 数位DP
- HDU 4722 (数位DP 水~)
- HDU 3652 (数位DP 水~)
- HDU DP
- DP? HDU
- DP? HDU
- DP? HDU
- 【dp】HDU
- 【dp】HDU
- 【dp】 HDU
- C++结构的大小
- 组合模式,Composite
- js中通过 CSS 选择器选取元素
- c3p0配置详解
- 对canvas的translate()方法的理解
- hdu 4526 水DP
- sublime 经验总结 主题有 less2css
- hta文件格式
- 使用oracle官方文档(11G)——初探Concept
- 【C语言学习】存储类型
- 一种基于FAT文件系统的NAND Flash坏块处理方法
- 常见库函数的实现
- 黑马程序员---面向对象1
- 装饰模式,Decorator