正经题解|复杂的博弈论
2024-10-14 10:10:37
发布于:浙江
26阅读
0回复
0点赞
T4-复杂的博弈论
思路:
每次A和B都会取最大的,那我们可以对数组进行排序,然后从后往前跑,计算每个人能拿到的钱的数目,最后做差即可。
你也可以和我一样偷懒,A拿到的钱加上本身,B拿的钱加上相反数,这样能少写很多代码。
代码:
#include <bits/stdc++.h>
using namespace std;
int n;
vector<int>q;
int main(){
cin >> n;
for(int i = 1; i <= n; i ++ ){
int x;
cin >> x;
q.push_back(x);
}
sort(q.begin(),q.end());
int ans = 0;
for(int i = n - 1; i >= 0; i -= 2){
ans += q[i];
if(i - 1 >= 0) ans -= q[i - 1];
}
cout << ans;
return 0;
}
这里空空如也
有帮助,赞一个