(RQoj 15 采药------rwkj 10.1.5.253 1447) 网上

#include<stdio.h>
int max(int x,int y)
{
int z;
if (x>y) z=x;
else z=y;
return z;
}

int max(int a,int b)
{
return a > b ? a : b;
}

 

 


int main()
{
int time[100],value[100];
int f[1000]={0};
int t,m,i,j;
int max(int x,int y);//.....比较两个数的大小。
scanf("%d%d",&t,&m);//.....输入t与m的值。
for (i=0;i<m;i++)
scanf("%d%d",&time[i],&value[i]);//....输入采某种药的时间与其价值。

for (i=0;i<m;i++)
{
for (j=t;j>0;j--)
{
if (j-time[i]>=0) f[j]=max(f[j],f[j-time[i]]+value[i]);/*.....动态规划的动态转移方程,实际上自己通过笔试就能深刻知道其运行的过程。*/

}
}
printf("%d\n",f[t]);
return 0;
}

posted @ 2014-08-12 20:26  2014acm  阅读(203)  评论(0编辑  收藏  举报