杭电acm的 FatMouse' Trade问题 我的代码用了好多测试数据都显示结果是对的,用c语言写的,但是提交的时却
答案:3 悬赏:10 手机版
解决时间 2021-11-26 09:55
- 提问者网友:龅牙恐龙妹
- 2021-11-26 04:09
杭电acm的 FatMouse' Trade问题 我的代码用了好多测试数据都显示结果是对的,用c语言写的,但是提交的时却
最佳答案
- 五星知识达人网友:归鹤鸣
- 2021-11-26 05:42
这是算法,思路挺简单的!
#include
#include
int main()
{
int M,N,*j,*f,i,k,t;
float sum=0;
scanf("%d%d",&M,&N);
while(M!=-1&&N!=-1)
{
j=malloc(N*sizeof(int));
f=malloc(N*sizeof(int));
for(i=0;i {
scanf("%d%d",&j[i],&f[i]);
for(k=i;k>=1;k--)
{
if((float)j[k]/(float)f[k]>(float)j[k-1]/(float)f[k-1])
{
t=j[k];
j[k]=j[k-1];
j[k-1]=t;
t=f[k];
f[k]=f[k-1];
f[k-1]=t;
}
}
}
i=0;
while(M>0&&i {
if(f[i]<=M)
{
sum+=j[i];
M=M-f[i];
i++;
continue;
}
else if(f[i]>M)
{
sum=M*((float)j[i]/(float)f[i])+sum;
break;
}
}
printf("%.3f\n",sum);
sum=0;
free(j);
free(f);
scanf("%d%d",&M,&N);
}
return 0;
}
#include
#include
int main()
{
int M,N,*j,*f,i,k,t;
float sum=0;
scanf("%d%d",&M,&N);
while(M!=-1&&N!=-1)
{
j=malloc(N*sizeof(int));
f=malloc(N*sizeof(int));
for(i=0;i
scanf("%d%d",&j[i],&f[i]);
for(k=i;k>=1;k--)
{
if((float)j[k]/(float)f[k]>(float)j[k-1]/(float)f[k-1])
{
t=j[k];
j[k]=j[k-1];
j[k-1]=t;
t=f[k];
f[k]=f[k-1];
f[k-1]=t;
}
}
}
i=0;
while(M>0&&i
if(f[i]<=M)
{
sum+=j[i];
M=M-f[i];
i++;
continue;
}
else if(f[i]>M)
{
sum=M*((float)j[i]/(float)f[i])+sum;
break;
}
}
printf("%.3f\n",sum);
sum=0;
free(j);
free(f);
scanf("%d%d",&M,&N);
}
return 0;
}
全部回答
- 1楼网友:慢性怪人
- 2021-11-26 06:17
你是吖沣吧,没人帮你解答的,老实把悬赏金给我吧~~~
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯