共鸣问题
解题思路:对于每对匹配(x,y,z)如果都不响是 -z,如果响一个是 0,如果都响是 z
那么可以一开始减去对应的z,那么如果都不响是 0,如果响一个是 +z,如果都响是 +2z
之后贪心即可,讲题人的思路,太妙了!(记得用long long)
long long wwork(int n, int m, vector<int>& a, vector<vector<int> >& b) {
// write code here
long long ans=0;
vector<long long> p(n);
for(auto &i : b){
ans-=i[2];
p[i[0]-1]+=i[2];
p[i[1]-1]+=i[2];
}
for(int i=0;i<n;++i)
{
if(a[i]+p[i]>0)ans+=a[i]+p[i];
}
return ans;
}
京公网安备 11010502036488号