求大佬给没有完全AC的题目纠错!!!
  • 板块学术版
  • 楼主撒野君
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/10/10 20:58
  • 上次更新2023/10/27 07:57:19
查看原帖
求大佬给没有完全AC的题目纠错!!!
250224
撒野君楼主2022/10/10 20:58
#include<bits/stdc++.h> 
using namespace std;
int f(double x[],double y[],int n)
{ 
	int c1=0,c2=0;
	for(int e=n;e>1;e--)
	if(x[e-1]/y[e-1]<x[e]/y[e])
	{
		c1=x[e-1];c2=y[e-1];
		x[e-1]=x[e];y[e-1]=y[e];
		x[e]=c1;y[e]=c2;
	}
	return n;
}
int main(){
	int N=0,T=0,n=0;
	cin>>N>>T;
	double ans=0,weight=0;
	double m[N+1],v[N+1];
	cin>>m[0]>>v[0];
	int I=0;
	while(I!=N-1)
	{ 
		n=f(v,m,I);
		I++;
		//if(I==num+1)break;
		//cout<<"enter:"<<endl;
		cin>>m[I]>>v[I];
	}
	int i=0;
	while(weight!=T){
		if(weight+m[i]<=T){
			weight+=m[i];
			ans+=v[i];
		}else{
			ans+=((T-weight)/m[i])*v[i];
			weight=T;
			break;
		}
		//cout<<"ans:"<<ans<<"  "<<"weight"<<weight<<endl;
		i++;
	}
	printf("%.2f",ans);
	return 0;
}

这是我的程序, 题号是 P2240 ,想法很简单,先按照单位金币价值进行排序,然后依次装包,然后一直装到刚好有一堆能装完后背包满了或者装不完所以切一部分下来装满背包位置 但是我不知道是哪儿出错了······望大佬指正

2022/10/10 20:58
加载中...