POJ 3265 DP
来源:互联网 发布:地理空间数据库 编辑:程序博客网 时间:2024/06/16 11:56
cow每个月月末可以得到m钱,一共有n个问题需要解决
如果解决某个问题,必须在第i月支付定金,并在i+1月支付尾款,需按顺序解决问题,每个月的金钱只能在下个月使用,不能累加
f[i][j]=Max(m-∑b[j]-∑b[k]){其中,k应当满足f[i-1][k]>=∑a[j]-∑a[k]}
f[i][j]表示在第i个月解决前j个问题所能剩下的最多的钱数
#include "stdio.h"#include "string.h"int dp[2010][310];int Max(int a,int b){ if (a<b) return b; else return a;}int main(){ int i,j,ans,m,n,a,b; int suma[310],sumb[310]; while (scanf("%d%d",&m,&n)!=EOF) { memset(suma,0,sizeof(suma)); memset(sumb,0,sizeof(sumb)); for (i=1;i<=n;i++) { scanf("%d%d",&a,&b); suma[i]=suma[i-1]+a; sumb[i]=sumb[i-1]+b; } ans=0; memset(dp,-1,sizeof(dp)); dp[1][0]=m; while (1) { ans++; for (i=1;i<=n;i++) for (j=i;j>=0;j--) { if (dp[ans-1][j]>=suma[i]-suma[j] && m>=sumb[i]-sumb[j]) dp[ans][i]=Max(dp[ans][i],m-sumb[i]+sumb[j]); if (dp[ans][i]==m) break; } if (dp[ans][n]>=0) break; } printf("%d\n",ans+1); } return 0;}
0 0
- POJ 3265 DP
- POJ 3265 DP
- poj 3265 Problem Solving dp
- poj dp
- 【dp】POJ
- 【dp】POJ
- [DP] POJ
- [DP] POJ
- [DP] POJ
- 【dp】POJ
- POJ 3670 && POJ 3671 (dp)
- 【DP】 POJ 1080
- poj 1163经典DP
- poj 1088 滑雪(DP)
- poj 1770 树形dp
- POJ 1179 Polygon(DP)
- POJ 1221 dp
- POJ 1953 DP
- WIN 7使用TK模块
- gcc学习(二)
- c++作业2.29
- PAT 1014. Waiting in Line (30)
- 一个循环 写出99乘法表
- POJ 3265 DP
- 阿里数据分析师笔试记录
- 编程之美初赛第二场 八卦的小冰(长模拟)
- iOS8 The application could not be verified.
- static关键字
- HDOJ 5223 GCD
- Webx中的uris
- 未能从程序集“System.ServiceModel, Version=3.0.0.0”中加载类型“System.ServiceModel.Activation.HttpModule” 的解决办法
- 直接插入排序法