贪心求助
  • 板块学术版
  • 楼主HX_ztx
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/4/20 14:21
  • 上次更新2024/4/20 16:25:03
查看原帖
贪心求助
945933
HX_ztx楼主2024/4/20 14:21

题目速达

思路

先求出最佳及格方案,再求最多可做题数

问题

wa #1,#2

码

#include<bits/stdc++.h>
using namespace std;
struct nn{ 
	int ts,s,w; 
}a[99999]; 
bool cmp(nn a,nn b){ 
	return a.w*b.s >b.w*a.s;
} 
bool cmp1(nn a,nn b){
	 return a.ts<b.ts; 
 } 
int n,m,k,r,f,sj; 
int main(){ 
	ios::sync_with_stdio(false); 
	cin.tie(0);cout.tie(0); 
	cin>>n>>m>>k>>r; 
	for(int i=1;i<=n;i++){ 
		cin>>a[i].ts; 
	} 	
	for(int i=1;i<=m;i++){ 
 		cin>>a[i].s; 
 	} 
 	for(int i=1;i<=m;i++){ 
 		cin>>a[i].w; 
 	} 
 	sort(a+1,a+1+n,cmp); 
 	int p=1;
 	while(f<k){//不及格
	    r-=a[p].s; 
 	    f+=a[p].w; 
  	    p++; 
	 }
	  sort(a+1,a+1+n,cmp1); 
	  int ans=0;
	p=1;
	while(r>0){ 
	    r-=a[p].ts;
	    ans++; 
		p++;
	} 
	cout<<ans; 
	return 0;
}
2024/4/20 14:21
加载中...