求助一道站外题
  • 板块学术版
  • 楼主柠檬布丁吖
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/11/6 18:52
  • 上次更新2023/10/27 04:01:15
查看原帖
求助一道站外题
370648
柠檬布丁吖楼主2022/11/6 18:52

POJ Supermarket

贪心+结构体排序

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>

using namespace std;

inline int read(){
	int ret=0,f=1;
	char c=getchar();
	for(;c<'0'||c>'9';c=getchar()) if(c=='-') f=-f;
	for(;c>='0'&&c<='9';c=getchar()) ret=ret*10+c-'0';
	return ret*f;
}

const int maxn=1e5+55;

int n,ans;
bool vis[maxn];
struct cow{
	int p,d;
}c[maxn];

bool cmp(cow _x,cow _y){
	return _x.p>_y.p;
}

signed main(){
	
	while(cin>>n){
		memset(vis,0,sizeof(vis));//多测清空!!!!! 
		for(int i=0;i<n;i++){
//			c[i].p=read();c[i].d=read();
			cin>>c[i].p>>c[i].d;
		}
		sort(c,c+n,cmp);
		int res=0;
		for(int i=0;i<n;i++){
			for(int j=c[i].p;j>=0;j--){
				if(j==0){
					break;
				}
				if(vis[j]==0){
					vis[j]=1;
					res+=c[i].d;
					break;
				}
			}
		}
		
		cout<<res<<endl;
	}
	
	return 0;
}
2022/11/6 18:52
加载中...