我好菜啊啊啊。。

循环以下操作

1.从队列中取出一个顶点, 把哪些没有用过的边全部用当前方向。

2.看有没有点的入度和 == 出度和, 如果有将当前的点加入队列。

现在有一个问题就是, 有没有可能队列中为空还没有更新完毕, 这是不可能的,

我们能这么考虑, 其中一个点x的入度还没有满, 那么我们能推出(u, x)还没有被确认, 说明u还没入队,

因为原图为有向图, 所以最后一定会推到1, 这回产生矛盾, 所以这种情况不可能发生。

  1. #include<bits/stdc++.h>
  2. #define LL long long
  3. #define fi first
  4. #define se second
  5. #define mk make_pair
  6. #define PLL pair<LL, LL>
  7. #define PLI pair<LL, int>
  8. #define PII pair<int, int>
  9. #define SZ(x) ((int)x.size())
  10. #define ull unsigned long long
  11.  
  12. using namespace std;
  13.  
  14. const int N = 2e5 + ;
  15. const int inf = 0x3f3f3f3f;
  16. const LL INF = 0x3f3f3f3f3f3f3f3f;
  17. const int mod = 1e9 + ;
  18. const double eps = 1e-;
  19. const double PI = acos(-);
  20.  
  21. int n, m, ans[N], all[N], sum[N];
  22. vector<pair<PII,int>> G[N];
  23.  
  24. int main() {
  25. memset(ans, -, sizeof(ans));
  26. scanf("%d%d", &n, &m);
  27. for(int i = ; i <= m; i++) {
  28. int a, b, c;
  29. scanf("%d%d%d", &a, &b, &c);
  30. G[a].push_back(mk(mk(b, c), i));
  31. G[b].push_back(mk(mk(a, c), -i));
  32. all[a] += c;
  33. all[b] += c;
  34. }
  35. queue<int> que;
  36. que.push();
  37. while(!que.empty()) {
  38. int u = que.front(); que.pop();
  39. for(auto& e : G[u]) {
  40. if(~ans[abs(e.se)]) continue;
  41. if(e.se < ) {
  42. ans[-e.se] = ;
  43. sum[e.fi.fi] += e.fi.se;
  44. } else {
  45. ans[e.se] = ;
  46. sum[e.fi.fi] += e.fi.se;
  47. }
  48. if(sum[e.fi.fi] * == all[e.fi.fi])
  49. if(e.fi.fi != n) que.push(e.fi.fi);
  50. }
  51. }
  52. for(int i = ; i <= m; i++) printf("%d\n", ans[i]);
  53. return ;
  54. }
  55.  
  56. /*
  57. */

Codeforces 269C Flawed Flow (看题解)的更多相关文章

  1. CodeForces - 269C Flawed Flow

    http://codeforces.com/problemset/problem/269/C 题目大意: 给定一个边没有定向的无法增广的残量网络且1是源点,n是汇点,给定每条边中的流.  让你把所有边 ...

  2. codeforces 269C Flawed Flow(网络流)

    Emuskald considers himself a master of flow algorithms. Now he has completed his most ingenious prog ...

  3. Codeforces 436E Cardboard Box (看题解)

    Cardboard Box 贪了个半天贪不对, 我发现我根本就不会贪心. 我们先按b排序, 然后枚举选两颗心的b的最大值, 在这个之前的肯定都要选一个, 因为前面的要是一个都没选的话, 你可以把当前选 ...

  4. Codeforces 1045C Hyperspace Highways (看题解) 圆方树

    学了一下圆方树, 好神奇的东西呀. #include<bits/stdc++.h> #define LL long long #define fi first #define se sec ...

  5. Codeforces 1137D Cooperative Game (看题解)

    Cooperative Game 智商题, 感觉不太能推出来, 虽然看看证明过程是对的. #include<bits/stdc++.h> #define LL long long #def ...

  6. Codeforces 875F Royal Questions (看题解)

    我还以为是什么板子题呢... 我们把儿子当做点, 公主当做边, 然后就是求边权值最大基环树森林. #include<bits/stdc++.h> #define LL long long ...

  7. Codeforces 983C Elevator dp (看题解)

    Elevator 怎么今天写啥题都不会写啊, 我是傻了吗.. 把电梯里面四个人的目标点当作状态, 然后暴力转移. #include<bits/stdc++.h> #define LL lo ...

  8. Codeforces 924D Contact ATC (看题解)

    Contact ATC 我跑去列方程, 然后就gg了... 我们计每个飞机最早到达时间为L[ i ], 最晚到达时间为R[ i ], 对于面对面飞行的一对飞机, 只要他们的时间有交集则必定满足条件. ...

  9. Codeforces 830C Bamboo Partition (看题解)

    Bamboo Partition 列公式, 整除分块, 想不到, 好菜啊. #include<bits/stdc++.h> #define LL long long #define fi ...

随机推荐

  1. TCP/IP详解 卷1 第十七章 TCP:传输控制协议

    17.2 TCP的服务 TCP提供了一种面向连接的.可靠的字节流服务.两个使用TCP的应用在彼此交换数据之前必须先建立一个TCP连接. TCP通过下列方式来提供可靠性: 1)  应用数据被分割成TCP ...

  2. Javaweb学习笔记——(一)——————进入html

    1.html的简介 *什么是html? -HyperText Markup Language:超文本标记语言,网页语言 **超文本:超出文本的范畴,使用html可以轻松实现这些操作 **标记:html ...

  3. 整数数字调节框QSpinBox

    样式: import sys from PyQt5.QtWidgets import QApplication, QWidget, QSpinBox, QDoubleSpinBox, QHBoxLay ...

  4. rest framework错误笔记——身份验证和权限

    按照官网教程(http://www.django-rest-framework.org/tutorial/4-authentication-and-permissions/)走到最后一步验证时,命令窗 ...

  5. CF448C Painting Fence (贪心分治)

    题面 \(solution:\) 一道蛮水的分治题,但思想很不错(虽然我还是非常天真的以为是积木大赛原题,并且居然还有30分) 看到这个题目,根据贪心的一贯风格,我们肯定能想到将整个栅栏的下面某部分直 ...

  6. php rsa理解

    参考链接:http://www.cnblogs.com/firstForEver/p/5803940.html 自己封装的一个类: <?php class CRsaAuthorization { ...

  7. 个人经验~mysql故障处理思路

    一 简介:个人经验总结 二 思路: 从整体上再进行梳理 三 linux角度 1 硬件是否有问题  常见主板 raid卡 和raid磁盘组 2 综合指标 负载 uptime : 1min  5min  ...

  8. [转]UART通信简介

    1.前言 UART通信,即通用异步收发传输器(Universal Asynchronous Receiver/Transmitter). 串行通信是指利用一条传输线将资料一位位地顺序传送.特点是通信线 ...

  9. MySQL版本升级参考资料【转】

    MySQL升级参考资料 MySQL 升级的最佳实践 - 技术翻译 - 开源中国社区https://www.oschina.net/translate/mysql-upgrade-best-practi ...

  10. 移动端rem单位适配使用

    1.适配方法 //缩放比例!function(e,t){function i(){o=1,e.devicePixelRatioValue=o,s=1/o;var t=a.createElement(& ...