过题情况
第一题:100%
第二题:100%
说实话这场笔试题目比较简单,25minAK
第一题:n个朋友,每个人有金币x,有m个房子,每个房子有舒适度和价格,当前仅当这个人金币数大于房子价格时才能购买,每个人至多买一个房子,每个房子最多被一个人买,求最大舒适度
按舒适度从大到小排序,然后二分选择金币刚好>=价格的人进行购买,这里用multiset进行删除操作。
#include<bits/stdc++.h>
using namespace std;
const int maxn=2e5+200;
struct node{
int a,b;
}c[maxn];
bool cmp(node a, node b){
if(a.a==b.a)return a.b<b.b;
return a.a>b.a;
}
int main(){
int n,m;
scanf("%d%d",&n,&m);
multiset<int> st;
for(int i=0;i<n;i++){
int x;
scanf("%d",&x);
st.insert(x);
}
for(int i=0