NOIP2006金明的预算方案
来源:互联网 发布:如何免费创建企业域名 编辑:程序博客网 时间:2024/05/21 09:16
有依赖的DP,标准写法是树形的但是听说这题会t……
#include<iostream>#include<cstdio>#include<cmath>#include<cstring>#include<cstdlib>#include<algorithm>#define fo(i,a,b) for(int i=a;i<=b;i++)#define down(i,a,b) for(int i=a;i>=b;i--)using namespace std;#define M 40000#define N 100int f[M];int w[N],c[N],lin[N],dfn[N][N];int n,m,ans=0;void ini(){scanf("%d%d",&m,&n);fo(i,1,n){int x,y,z;scanf("%d%d%d",&x,&y,&z);w[i]=x;c[i]=x*y;lin[i]=z;if(z)dfn[z][++dfn[z][0]]=i;}}void DP(){fo(i,1,n)if(lin[i]==0)down(j,m,w[i]){f[j]=max(f[j],f[j-w[i]]+c[i]);int t=j-w[i];if(dfn[i][0]&&t-w[dfn[i][1]]>=0){f[j]=max(f[j],f[t-w[dfn[i][1]]]+c[i]+c[dfn[i][1]]);}if(dfn[i][0]>1){if(t-w[dfn[i][2]]>=0){f[j]=max(f[j],f[t-w[dfn[i][2]]]+c[i]+c[dfn[i][2]]);}t-=w[dfn[i][1]]+w[dfn[i][2]];if(t>=0){f[j]=max(f[j],f[t]+c[i]+c[dfn[i][1]]+c[dfn[i][2]]);}}ans=max(ans,f[j]);}}void OUT(){cout<<ans<<endl;}int main(){ini();DP();OUT();//system("pause");return 0;}
0 0
- 【NOIP2006】金明的预算方案
- NOIP2006金明的预算方案
- NOIP2006 金明的预算方案
- noip2006 金明的预算方案
- noip2006金明的预算方案 T2
- noip2006 金明的预算方案
- NOIP2006金明的预算方案
- 【wikioi1155】金明的预算方案(noip2006, 9018p1210, tyvj1057)
- ACM 背包DP [NOIP2006]金明的预算方案(budget)
- [NOIP2006]金明的预算方案【动态规…
- 【NOIP2006】金明的预算方案 背包DP
- 洛谷 P1064 [NOIP2006 T2] 金明的预算方案
- |Tyvj|NOIP2006|动态规划|P1057 金明的预算方案
- 洛谷 1064 [NOIP2006] 金明的预算方案 背包DP
- 【NOIP2006提高组】金明的预算
- noip2006 金明的预算方案 (有依赖的背包转化为01背包)
- 依赖背包dp NOIP2006 vijos 1313 金明的预算方案
- ACM 117. [NOIP2006] 金明的预算方案(dp+01背包变形)
- Java接口和抽象类有什么区别,什么时候用接口好,什么时候用抽象类好?
- vim 技巧
- iphone 线程总结— detachNewThreadSelector的使用
- 不要在Android的Application对象中缓存数据!
- 用Python编写数据结构的冒泡排序
- NOIP2006金明的预算方案
- HDU 1075——Trie树
- 语音编码的方式
- UIDatePicker && UIToolbar【时期选择器】
- .net连接oracle 预编译写法
- hdoj 验证角谷猜想 1266 (模拟)水
- SQL多表连接查询
- jqurey为何要加 $(function(){});
- HDU 1019 Least Common Multiple