Codeforces 269C Flawed Flow (看题解)
我好菜啊啊啊。。
循环以下操作
1.从队列中取出一个顶点, 把哪些没有用过的边全部用当前方向。
2.看有没有点的入度和 == 出度和, 如果有将当前的点加入队列。
现在有一个问题就是, 有没有可能队列中为空还没有更新完毕, 这是不可能的,
我们能这么考虑, 其中一个点x的入度还没有满, 那么我们能推出(u, x)还没有被确认, 说明u还没入队,
因为原图为有向图, 所以最后一定会推到1, 这回产生矛盾, 所以这种情况不可能发生。
#include<bits/stdc++.h>
#define LL long long
#define fi first
#define se second
#define mk make_pair
#define PLL pair<LL, LL>
#define PLI pair<LL, int>
#define PII pair<int, int>
#define SZ(x) ((int)x.size())
#define ull unsigned long long using namespace std; const int N = 2e5 + ;
const int inf = 0x3f3f3f3f;
const LL INF = 0x3f3f3f3f3f3f3f3f;
const int mod = 1e9 + ;
const double eps = 1e-;
const double PI = acos(-); int n, m, ans[N], all[N], sum[N];
vector<pair<PII,int>> G[N]; int main() {
memset(ans, -, sizeof(ans));
scanf("%d%d", &n, &m);
for(int i = ; i <= m; i++) {
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
G[a].push_back(mk(mk(b, c), i));
G[b].push_back(mk(mk(a, c), -i));
all[a] += c;
all[b] += c;
}
queue<int> que;
que.push();
while(!que.empty()) {
int u = que.front(); que.pop();
for(auto& e : G[u]) {
if(~ans[abs(e.se)]) continue;
if(e.se < ) {
ans[-e.se] = ;
sum[e.fi.fi] += e.fi.se;
} else {
ans[e.se] = ;
sum[e.fi.fi] += e.fi.se;
}
if(sum[e.fi.fi] * == all[e.fi.fi])
if(e.fi.fi != n) que.push(e.fi.fi);
}
}
for(int i = ; i <= m; i++) printf("%d\n", ans[i]);
return ;
} /*
*/
Codeforces 269C Flawed Flow (看题解)的更多相关文章
- CodeForces - 269C Flawed Flow
http://codeforces.com/problemset/problem/269/C 题目大意: 给定一个边没有定向的无法增广的残量网络且1是源点,n是汇点,给定每条边中的流. 让你把所有边 ...
- codeforces 269C Flawed Flow(网络流)
Emuskald considers himself a master of flow algorithms. Now he has completed his most ingenious prog ...
- Codeforces 436E Cardboard Box (看题解)
Cardboard Box 贪了个半天贪不对, 我发现我根本就不会贪心. 我们先按b排序, 然后枚举选两颗心的b的最大值, 在这个之前的肯定都要选一个, 因为前面的要是一个都没选的话, 你可以把当前选 ...
- Codeforces 1045C Hyperspace Highways (看题解) 圆方树
学了一下圆方树, 好神奇的东西呀. #include<bits/stdc++.h> #define LL long long #define fi first #define se sec ...
- Codeforces 1137D Cooperative Game (看题解)
Cooperative Game 智商题, 感觉不太能推出来, 虽然看看证明过程是对的. #include<bits/stdc++.h> #define LL long long #def ...
- Codeforces 875F Royal Questions (看题解)
我还以为是什么板子题呢... 我们把儿子当做点, 公主当做边, 然后就是求边权值最大基环树森林. #include<bits/stdc++.h> #define LL long long ...
- Codeforces 983C Elevator dp (看题解)
Elevator 怎么今天写啥题都不会写啊, 我是傻了吗.. 把电梯里面四个人的目标点当作状态, 然后暴力转移. #include<bits/stdc++.h> #define LL lo ...
- Codeforces 924D Contact ATC (看题解)
Contact ATC 我跑去列方程, 然后就gg了... 我们计每个飞机最早到达时间为L[ i ], 最晚到达时间为R[ i ], 对于面对面飞行的一对飞机, 只要他们的时间有交集则必定满足条件. ...
- Codeforces 830C Bamboo Partition (看题解)
Bamboo Partition 列公式, 整除分块, 想不到, 好菜啊. #include<bits/stdc++.h> #define LL long long #define fi ...
随机推荐
- Spring Boot 系列 @ControllerAdvice 拦截异常并统一处理
ControllerAdvice用法解析 简介 通过@ControllerAdvice注解可以将对于控制器的全局配置放在同一个位置. 注解了@Controller的类的方法可以使用@Exception ...
- ADB not responding
1.如下错误: 2.执行 如下代码 : netstat -aon|findstr "5037" 3.打开任务管理器 找到PID 为 5536 的进程 将该进程关闭 4.重启 A ...
- android ContentObserver内容观察者基本使用
package com.example.observertest; import android.content.ContentResolver; import android.database.Co ...
- UE4中Component和Subobject的区别
Component是Subobject的一种. 其中, Subobject是一种Outer不是一个UPackage的UObject,而UPackage是整个层次结构中的最上层,指向磁盘上的一个.uas ...
- D - Laying Cables Gym - 100971D (单调栈)
题目链接:https://cn.vjudge.net/problem/Gym-100971D 题目大意:给你n个城市的信息,每一个城市的信息包括坐标和人数,然后让你找每一个城市的父亲,作为一个城市的父 ...
- java删除文件及其目录
1.删除指定文件路径 public @ResponseBody String deleteFiles(HttpServletRequest request) { log.info(this.getCl ...
- 配置使用OpenCV静态链接库
配置opencv静态链接库需要用到:staticlib 在配置链接器->附加库目录时应该为staticlib的路径.同理若是利用动态链接库则只需要lib的路径: 动态链接库则使用lib,然而在使 ...
- ARMV8 datasheet学习笔记2:概述
1. 前言 本文主要概括的介绍ARMV8体系结构定义了哪些内容,概括的说: ARM体系结构定义了PE的行为,不会定义具体的实现 ARM体系结构也定义了debug体系结构和trace体系结构 ARM体系 ...
- git入门与实践【转】
转自:http://www.cnblogs.com/shenhaocn/archive/2011/03/13/1982957.html 什么是版本控制 要了解什么是git,首先需要了解什么是版本控制( ...
- scp -r拷贝目录不会拷贝软连接
scp -r拷贝目录,不会拷贝 软连接的 解决方法: 使用rsync拷贝 参考:rsync本地及远程复制备份[原创] - paul_hch - 博客园 https://www.cnblogs.com/ ...