记录编号 |
245226 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[NOIP 2006]金明的预算方案 |
最终得分 |
100 |
用户昵称 |
521 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.000 s |
提交时间 |
2016-04-02 15:37:16 |
内存使用 |
0.14 MiB |
显示代码纯文本
- #include<stdio.h>
- int a[35000]={0},t[500][500]={0},w[1000]={0},c[1000]={0},p[1000]={0};
- int _w[1000]={0},_c[1000]={0};
- int ww()
- {
- freopen("budget.in","r",stdin);
- freopen("budget.out","w",stdout);
- int n,m,i,v,j=1,T=0;
- scanf("%d%d",&m,&n);
- for(i=1;i<=n;i++)
- scanf("%d%d%d",&w[i],&c[i],&p[i]);
- for(i=1;i<=n;i++)
- {
- if(p[i]==0)
- {
- t[i][0]++;t[i][t[i][0]]=j;
- _c[j]=c[i]*w[i];_w[j++]=w[i];
- }
- else
- {
- t[p[i]][0]++;t[p[i]][t[p[i]][0]]=j;
- _w[j]=w[i]+w[p[i]];
- _c[j++]=w[p[i]]*c[p[i]]+c[i]*w[i];
- if(t[p[i]][0]>2)
- {
- t[p[i]][0]++;t[p[i]][t[p[i]][0]]=j;
- _w[j]=w[i]+_w[t[p[i]][2]];
- _c[j++]=_c[t[p[i]][2]]+c[i]*w[i];
- }
- }
- }
- for(i=1;i<=n;i++)
- {
- for(v=m;v>=1;v--)
- for(j=1;j<=t[i][0];j++)
- {
- if(v>=_w[t[i][j]]&&a[v]<=a[v-_w[t[i][j]]]+_c[t[i][j]])
- a[v]=a[v-_w[t[i][j]]]+_c[t[i][j]];
- }
- }
- printf("%d\n",a[m]);
- return 0;
- }
- int aaa=ww();
- int main(){;}