BZOJ 3903 反垄断 (最大流推的结论题)
题目
中文题目,不解释:
BZOJ传送门
分析
这道题BZOJ上也只有几个人过…奇怪了
下面是正解
- 原问题为一个二分图边染色问题。首先考虑最好情况。最理想情况的分配为:设一个点xxx的度为dgr(x)dgr(x)dgr(x)。那么若dgr(x)dgr(x)dgr(x)为ttt的倍数,那么与xxx相连的边恰好平均分配给ttt个公司,每个公司dgr(x)/tdgr(x)/tdgr(x)/t个;如果不是ttt的倍数,那么要尽量分的均匀,即max(ax(c))−min(ax(c))=1max(a_x(c))-min(a_x(c))=1max(ax(c))−min(ax(c))=1。分出来应该为floor(dgr(x)/t),floor(dgr(x)/t),...,floor(dgr(x)/t)+1,floor(dgr(x)/t)+1,...floor(dgr(x)/t),floor(dgr(x)/t),...,floor(dgr(x)/t)+1,floor(dgr(x)/t)+1,...floor(dgr(x)/t),floor(dgr(x)/t),...,floor(dgr(x)/t)+1,floor(dgr(x)/t)+1,...。可以证明上述分配方案一定能达到。证明过程就是归纳构造的过程。我们先构造出ttt号公司所选边,然后转化成t−1t-1t−1个公司的子问题。根据假设,可以确定每个点属于ttt公司的边数只有一种或两种可能。于是建图,原来的边保留,容量为111。原点到AAA国每个点连以需要分配给ttt号公司的边数为容量的边。如果该点度数不能被ttt整除,那么多连一条容量为111的边。求最大流。可以证明任意一个最大流一定能对应到ttt公司的分配方案。然后删去满流边,递归成t−1t-1t−1个公司的问题。
- 题解和javajavajava标程出处 传送门
…已经证明分配方案一定可以达到,那么这就是一道结论题了…下面是我的ACACAC代码
#include <cstdio>
template<typename T>inline void read(T &num) {
char ch; while((ch=getchar())<'0'||ch>'9');
for(num=0;ch>='0'&&ch<='9';num=num*10+ch-'0',ch=getchar());
}
const int MAXN = 205;
int deg[2][MAXN], n[2], t, m, ans;
int main ()
{
read(n[0]), read(n[1]), read(m), read(t);
for(int i = 1, x, y; i <= m; ++i)
read(x), read(y), ++deg[0][x], ++deg[1][y];
for(int i = 1; i <= n[0]; ++i) ans += bool(deg[0][i] % t);
for(int i = 1; i <= n[1]; ++i) ans += bool(deg[1][i] % t);
printf("%d\n", ans);
}
BZOJ 3903 反垄断 (最大流推的结论题)的更多相关文章
- crtmpserver实现防盗流和流推送验证
Protecting your streams from webpage copy&paste flash code, listing or recording 保护流,防止在页面上被复制&a ...
- [bzoj 1449] 球队收益(费用流)
[bzoj 1449] 球队收益(费用流) Description Input Output 一个整数表示联盟里所有球队收益之和的最小值. Sample Input 3 3 1 0 2 1 1 1 1 ...
- BZOJ.2597.[WC2007]剪刀石头布(费用流zkw)
BZOJ 洛谷 \(Description\) 给定一张部分边方向已确定的竞赛图.你需要给剩下的边确定方向,使得图中的三元环数量最多. \(n\leq100\). \(Solution\) 这种选择之 ...
- crtmpserver实现防盗流和流推送验证 之二
IV. Catching the thieves 抓住小偷 Well, we have just added a secure mechanism to our little streaming se ...
- BZOJ 3144 [HNOI2013]切糕 (最大流+巧妙的建图)
题面:洛谷传送门 BZOJ传送门 最大流神题 把点权转化为边权,切糕里每个点$(i,j,k)$向$(i,j,k+1)$连一条流量为$v(i,j,k)$的边 源点$S$向第$1$层的点连边,第$R+1$ ...
- BZOJ 1189 二分匹配 || 最大流
1189: [HNOI2007]紧急疏散evacuate Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1155 Solved: 420[Submi ...
- BZOJ 1053 & 反素数
题意: 反素数,膜一篇GOD's Blog...http://blog.csdn.net/ACdreamers/article/details/25049767 此文一出,无与争锋... CODE: ...
- BZOJ 3085: 反质数加强版SAPGAP (反素数搜索)
题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3085 题意:求n(<=10^100)之内最大的反素数. 思路: 优化2: i ...
- poj 2711 Leapin' Lizards && BZOJ 1066: [SCOI2007]蜥蜴 最大流
题目链接:http://poj.org/problem?id=2711 题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1066 Your p ...
随机推荐
- windows下 安装gitlab及其相关图形管理工具
windows下 安装gitlab及其相关图形管理工具 在windows下安装git中文版客户端并连接gitlab 下载git Windows客户端 git客户端下载地址:https://gi ...
- ASP.NET请求过程-基本过程
客户端发送请求到达服务器 输入域名->DNS解析->指定IP 服务器(如果网页直接输入IP地址则直接到服务器)->请求到达服务器->HTTP.SYS接受HTTP请求->转 ...
- LC 206. Reverse Linked List
题目描述 Reverse a singly linked list. Example: Input: 1->2->3->4->5->NULL Output: 5-> ...
- python学习-11 运算符2
布尔值 1.真 true 假false name = 'abc' c = 'c' in name print(c) 运算结果: True Process finished with exit code ...
- js — 对象
目录 1. 字符串和数值之间转换 2. 对象(object) 3. 日期对象 4. 数学Math对象 5. 流程控制 6. 循环 1. 字符串和数值之间转换 1.字符串转数值 var str = '1 ...
- 使用Duilib开发Windows软件(3)——控件的样式
摘抄下 https://www.cnblogs.com/Alberl/p/3344936.html 的一段代码 <?xml version="1.0" encoding=&q ...
- 使用UTF8字符集存储中文生僻字
使用UTF8字符集存储中文生僻字 一.相关学习BLOG https://www.cnblogs.com/jyzhao/p/8654412.html http://blog.itpub.net/7818 ...
- (十三)Hibernate中的多表操作(3):单向多对多
多对多的处理方式是,有一张中间表,中间表保存两个多方之间的关系.首先来看实际应用场景:在之前开发的系统中,应用了基于角色的控制访问,也就是RBAC模型,一个用户可能存在多种角色,一种角色也可能有多个用 ...
- JS基础_使用工厂方法创建对象(了解下就行了,用的不多)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- default(Nullable(type)) vs default(type)
default(Nullable<long>) == null default(long?) == null default(long) == 0L