题解 CF981B 【Businessmen Problems】

其实不要上面那个大佬讲得那么麻烦

用一个 $map$ 记录每个编号的最大价值,再遍历 $map$ 求总和就可以了

code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include
#define fol(i,a,b) for(int i=a;i<=(b);i++)
#define bor(i,a,b) for(int i=a;i>=(b);--i)
#define int long long
using namespace std;
map<int,int> mp;
signed main(){
int n,m,tmp;
cin>>n;
fol(i,1,n){
cin>>m>>tmp;
mp[m]=max(mp[m],tmp);
}
cin>>n;
fol(i,1,n){
cin>>m>>tmp;
mp[m]=max(mp[m],tmp);
}
int sum=0;
for(map<int,int>::iterator it=mp.begin();it!=mp.end();it++){
sum+=(*it).second;
}
cout<endl;
return 0;
}
0%