这个题真的是贪心吗
查看原帖
这个题真的是贪心吗
137723
pencil楼主2021/9/25 17:36
#include<bits/stdc++.h>
//#include<alorgithm>
using namespace std;
struct ai{
	int date,value;
}a[9999];
bool cmp(ai a,ai b){
	if(a.value==b.value)
	return a.date<b.date;
	return a.value>b.value;
}
int main(){
	int maxx=-1,n,m,i;
	cin>>m>>n;
	for(i=1;i<=n;i++){
		cin>>a[i].date;maxx=max(maxx,a[i].date);
	}
	for(i=1;i<=n;i++){
		cin>>a[i].value;m-=a[i].value;
	}
	sort(a+1,a+n+1,cmp);
	int time=0,bottom=1;
	for(i=1;i<=n;i++){
		if(a[i].date>time){
			m+=a[i].value;
			time++;
//			cout<<a[i].value<<" ";
		}
		if(i>maxx)
		break;
	}
	cout<<m;
	return 0;
} 

RT,我用贪心查出来很显然是错误的

2021/9/25 17:36
加载中...