首页 > 代码库 > 【NOIP模拟赛】Evensgn 的债务 乱搞

【NOIP模拟赛】Evensgn 的债务 乱搞

biubiu~~~

我们发现按照这道题的题意我们把一个个人的前后(欠钱,被欠钱)都缩一下,那么他对其他人没有影响,那么我们就可以依次缩完每个人,而且每个人最后的状态都是要买欠要么被欠,那么我们可以知道他的钱数而且一下子就知道了...........

论数据范围把10^6看成106的悲伤........

#include <cstdio>namespace pre{  inline void read(int &sum){    register char ch=getchar();    for(sum=0;ch<0||ch>9;ch=getchar());    for(;ch>=0&&ch<=9;sum=(sum<<1)+(sum<<3)+ch-0,ch=getchar());  }}namespace P=pre;namespace wq{  int n,m;  int a[1000100];  inline void Work(){    using P :: read;    read(n),read(m);    for(int i=1,A,B,C;i<=m;i++){      read(A),read(B),read(C);      a[A]-=C,a[B]+=C;    }  }}int main(){  wq::Work();  int ans=0;  for(int i=1;i<=wq::n;i++){    if(wq::a[i]>0)      ans+=wq::a[i];  }  printf("%d",ans);  return 0;}

 

【NOIP模拟赛】Evensgn 的债务 乱搞