B题贪心

共鸣问题

https://ac.nowcoder.com/acm/contest/10325/B

  • 对于每对匹配(x,y,z)
  • 如果都不响是 -z
    如果响一个是 0
    如果都响是 z
  • 那么可以一开始减去对应的z
    这样子可以降低起点后改变理解
  • 如果都不响是 0
    如果响一个是 +z
    如果都响是 +2z
  • 之后贪心即可
    class Solution {
    public:
     long long wwork(int n, int m, vector<int>& a, vector<vector<int> >& b) {
         long long ans=0;
         vector<long long> aa(n);
         for (int i=0;i<n;i++) {
             aa.at(i)=a.at(i);
         }
         for (vector<int> &i:b) {
             int x=i.at(0)-1;
             int y=i.at(1)-1;
             int z=i.at(2);
             aa.at(x)+=z;
             aa.at(y)+=z;
             ans-=z;
         }
         for (int i=0;i<n;++i) {
             ans+=max(aa.at(i),0LL);
         }
         return ans;
     }
    };
全部评论

相关推荐

28小凳也想实习:项目不用一个业务一个轮子吗,刷牛客好多人说要一业务一轮子
点赞 评论 收藏
分享
牛客765689665号:没有实习是硬伤,央国企看学历
点赞 评论 收藏
分享
评论
7
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务