社区讨论
我这个可以通过样例,但是却给我零分
P2240【深基12.例1】部分背包问题参与者 3已保存回复 19
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 19 条
- 当前快照
- 1 份
- 快照标识符
- @locuz6fi
- 此快照首次捕获于
- 2023/10/30 20:10 2 年前
- 此快照最后确认于
- 2023/11/05 06:44 2 年前
C
#include<bits/stdc++.h>
using namespace std;
int main(void)
{
int N,T,i,j;
double sum=0;
int p[1010],w[1010]; //读入价值和重量
double q[1010]; //单位重量的价值
scanf("%d %d",&N,&T); //读入金币堆数,和背包最大承重
for(i=0;i<N;i++)
{
scanf("%d %d",&w[i],&p[i]);
}
for(i=0;i<N;i++)
{
q[i]=p[i]/w[i]; //计算单位重量的价值
}
for(i=0;i<N;i++)
{
if(T<=0)
{
break;
}
if(T<w[i])
{
sum+=T*q[i];
}
else
{
sum+=w[i]*q[i];
}
T=T-w[i];
}
printf("%.2lf",sum);
return 0;
}
回复
共 19 条回复,欢迎继续交流。
正在加载回复...