F - Flow Control

给你一个有向图,要求你给每条边设置流量,使得所有点的流量符合题目给出的要求。

思路:只有在所有点的流量和为0时有解,因为增加一条边的值不会改变所有点的总流量和,

所以我们dfs回溯的时候构造就好了, 其他边设为0。

#include<bits/stdc++.h>
#define LL long long
#define fi first
#define se second
#define mk make_pair
#define pii pair<int, int> using namespace std; const int N = 2e5 + ;
const int M = 1e5 + ;
const int inf = 0x3f3f3f3f;
const LL INF = 0x3f3f3f3f3f3f3f3f;
const int mod = 1e9 +; int head[N], s[N], ans[N], flow[N], tot, n, m, sum;
bool vis[N];
struct Edge {
int to, id, nx;
} edge[N << ]; void add(int u, int v, int id) {
edge[tot].to = v;
edge[tot].id = id;
edge[tot].nx = head[u];
head[u] = tot++;
} void dfs(int u, int p, int id) {
vis[u] = true;
for(int i = head[u]; ~i; i = edge[i].nx) {
int v = edge[i].to;
if(vis[v]) continue;
dfs(v, u, i);
} if(flow[u] != s[u]) {
int ret = abs(s[u] - flow[u]);
if(flow[u] < s[u]) {
flow[u] = ;
flow[p] -= ret;
if(id & ) {
ans[edge[id].id] = -ret;
} else {
ans[edge[id].id] = ret;
}
} else {
flow[u] = ;
flow[p] += ret;
if(id & ) {
ans[edge[id].id] = ret;
} else {
ans[edge[id].id] = -ret;
}
}
}
} int main() {
memset(head, -, sizeof(head));
scanf("%d", &n);
for(int i = ; i <= n; i++) {
scanf("%d", &s[i]);
sum += s[i];
} scanf("%d", &m);
for(int i = ; i <= m; i++) {
int u, v; scanf("%d%d", &u, &v);
add(u, v, i); add(v, u, i);
} if(!sum) {
dfs(, , -);
puts("Possible");
for(int i = ; i <= m; i++) {
printf("%d\n", ans[i]);
}
} else {
puts("Impossible");
}
return ;
}
/*
*/

Educational Codeforces Round 45 (Rated for Div. 2) F - Flow Control的更多相关文章

  1. Codeforces Educational Codeforces Round 44 (Rated for Div. 2) F. Isomorphic Strings

    Codeforces Educational Codeforces Round 44 (Rated for Div. 2) F. Isomorphic Strings 题目连接: http://cod ...

  2. Educational Codeforces Round 71 (Rated for Div. 2)-F. Remainder Problem-技巧分块

    Educational Codeforces Round 71 (Rated for Div. 2)-F. Remainder Problem-技巧分块 [Problem Description] ​ ...

  3. Educational Codeforces Round 45 (Rated for Div. 2) C、D

      C. Bracket Sequences Concatenation Problem time limit per test 2 seconds memory limit per test 256 ...

  4. Educational Codeforces Round 45 (Rated for Div. 2) E - Post Lamps

    E - Post Lamps 思路:一开始看错题,以为一个地方不能重复覆盖,我一想值这不是sb题吗,直接每个power check一下就好....复杂度nlogn 然后发现不是,这样的话,对于每个po ...

  5. Educational Codeforces Round 45 (Rated for Div. 2) G - GCD Counting

    G - GCD Counting 思路:我猜测了一下gcd的个数不会很多,然后我就用dfs回溯的时候用map暴力合并就好啦. 终判被卡了MLE.....  需要每次清空一下子树的map... #inc ...

  6. Educational Codeforces Round 45 (Rated for Div. 2)

    A bracket sequence is a string containing only characters "(" and ")". A regular ...

  7. Educational Codeforces Round 50 (Rated for Div. 2) F - Relatively Prime Powers(数学+容斥)

    题目链接:http://codeforces.com/contest/1036/problem/F 题意: 题解:求在[2,n]中,x != a ^ b(b >= 2 即为gcd)的个数,那么实 ...

  8. Educational Codeforces Round 58 (Rated for Div. 2) F dp + 优化(新坑) + 离线处理

    https://codeforces.com/contest/1101/problem/F 题意 有n个城市,m辆卡车,每辆卡车有起点\(s_i\),终点\(f_i\),每公里油耗\(c_i\),可加 ...

  9. Educational Codeforces Round 42 (Rated for Div. 2)F - Simple Cycles Edges

    http://codeforces.com/contest/962/problem/F 求没有被两个及以上的简单环包含的边 解法:双联通求割顶,在bcc中看这是不是一个简单环,是的话把整个bcc的环加 ...

随机推荐

  1. 实例讲解启动mysql server失败的解决方法

    MySQL 实例讲解启动mysql server失败的解决方法 来源: 作者: 发表于: 启动mysql server 失败,查看/var/log/mysqld.err 080329 16:01:29 ...

  2. K8s仪表盘

    { "__inputs": [ { "name": "DS_TEST-ENVIORMENT-K8S", "label": ...

  3. 前端PHP入门-009-匿名函数

    想想JavaScript当中是否有这个概念? 所谓匿名,就是没有名字. 匿名函数,也就是没有函数名的函数. 匿名函数的第一种用法,直接把赋数赋值给变量,调用变量即为调用函数. 匿名函数的写法比较灵活. ...

  4. SpringCloud学习(3)——Eureka服务注册中心及服务发现

    Eureka概述: Eureka是Netflix的一个子模块, 也是核心模块之一.Eureka是一个基于REST的服务, 用于定位服务, 以实现云端中间层服务发现和故障转移.服务注册与发现对于微服务框 ...

  5. How to Evaluate Machine Learning Models, Part 4: Hyperparameter Tuning

    How to Evaluate Machine Learning Models, Part 4: Hyperparameter Tuning In the realm of machine learn ...

  6. 【acmm】一道简单的数学题

    emm卡常 我本来写成了这个样子: #include<bits/stdc++.h> using namespace std; typedef long long LL; ; struct ...

  7. [CodePlus 2017 11月赛]晨跑 题解(辗转相除法求GCD)

    [CodePlus 2017 11月赛]晨跑 Description "无体育,不清华"."每天锻炼一小时,健康工作五十年,幸福生活一辈子".在清华,体育运动绝 ...

  8. 面试整理(2)跨域:jsonp与CORS

    问题:跨域有哪些方法?jsonp的原理是什么? jsonp: 先说jsonp,jsonp的主要原理是利用script标签的src可以跨域请求,据说有src属性的都可以跨域请求,但script标签返回的 ...

  9. webgote的例子(5)Sql注入(Blog)

    SQL Injection - Stored (Blog) (本章内容):留言板的注入 看到这个页面先看以下这个页面是做什么的.进行正常的写入发现我每写一句话,其内容都会写到下面的entry里面 在尝 ...

  10. ubuntu之一些安装配置的坑

    前言 本博客记录自己使用ubuntu的一些错误和坑. ubuntu不支持yum下载安装机制 命令 sudo apt install yum 是可以安装yum的,但安装好后执行: $ yum insta ...