讨论 / 请问下我这个为什么一直是WA40?一直Unaccepted / 在1行选手输出与标准输出存在差异
memory__24746 2016-10-26 10:13:06
点我顶贴 收藏 删除
#include <stdio.h>

int v[25],p[25];

int main()

{

int i,j,temp,sum,N,m;

scanf("%d %d",&N,&m);

for(i=0;i<2*m;i++)

{

if((i+1)%2==0)

scanf("%d",&p[i/2]);

else

scanf("%d",&v[i/2]);

}

for(i=0;i<10;i++)

for(j=i+1;j<m;j++)

{

if(p[i]<p[j])

{

temp=p[j];

p[j]=p[i];

p[i]=temp;

temp=v[j];

v[j]=v[i];

v[i]=temp;

}

}

sum=0;temp=0;

for(i=0;sum<=N,i<m;i++)

{

sum=sum+v[i];

if(sum>N)

{

sum-=v[i];

continue;

}

temp=temp+v[i]*p[i];

}

printf("%d\n",temp);

return 0;

}

#1 Nightingalelyy@2016-10-26 20:56:09
回复 删除
哥们你数组开的太小了,而且这道题不能用贪心,要用背包。
#2 Nightingalelyy@2016-10-26 20:56:42
回复 删除
这道题是动态规划
#3 memory__24746@2016-10-27 09:44:35
回复 删除
回复 #2 Nightingalelyy:以前没听说过动态规划,,,然后百度了说是01背包,还没太明白,
#4 memory__24746@2016-10-27 09:45:05
回复 删除
回复 #1 Nightingalelyy:贪心什么意思?我百度了01背包,
#5 memory__24746@2016-10-27 09:48:05
回复 删除
回复 #1 Nightingalelyy:百度了,又长见识了,谢啦哥们,
查看更多回复
提交回复