uva 10779 Collectors Problem 网络流】的更多相关文章

链接 一共有n个人, m种收藏品, 每个人拥有的收藏品的种类和个数都是不相同的. 假设2-n这些人都只和1互相交换, 比例是1:1, 并且, 2-n这些人, 只换自己现在没有的, 如果他现在有第二种, 那么他就不会在去和别人换这一种.比如说第一个人有6个第一种, 2个第三种, 第二个人有2个第一种, 1个第二种, 那么第二个人就不会去和第一个人交换第二种, 而是去交换第三种. 问第一个人最后可以得到多少种不同的收藏品. 首先, 对于第一个人所拥有的收藏品, 建边(s, i+n, num[i]),…
这个题是很难往网络流上面构思的... 从s向每个物品增加容量为Bob拥有数的弧,然后从每个物品向t增加容量为1的弧(代表种类个数).这时候跑最大流的话,得到的肯定是Bob拥有的初始种类数.那么交换后的最大数呢? 对于Bob以外的小伙伴,如果i拥有j物品超过1个(交换后他自己至少保留一个),从人节点i向物品节点j增加容量为num-1的弧,表示他能输出多少物品,而如果i没有j物品,那么从物品节点j向人节点i增加容量为1的弧(他最多接受1单位的物品).然后跑最大流得到的就是答案了. #include<…
UVA - 10779 思路: 最大流: s向所有的贴纸的种类连边,流量为Bob拥有的数量: 然后,Bob的朋友如果没有这种贴纸,则这种贴纸向bob的朋友连边,容量1: 如果bob的朋友的贴纸很多大于1,向该贴纸的种类连边,容量数量-1: 所有贴纸的种类向t连边,容量1: 代码: #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namesp…
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=33631 题目大意:Bob有一些贴纸,他可以和别人交换,他可以把自己独有的贴纸拿出去,也可以把重复的贴纸拿出去(有时候把独有的贴纸而不是重复的贴纸拿出去能换到更多贴纸). Bob的朋友也有一些贴纸,但是他们只会拿自己重复的贴纸和Bob换,而且换的是自己没有的贴纸. 求Bob最后最多能有多少种贴纸. 解题思路: 题目意思很明确了.就算把重复的贴纸拿出去也不一定最优,贪…
UVA 10480 Sabotage (网络流,最大流,最小割) Description The regime of a small but wealthy dictatorship has been abruptly overthrown by an unexpected rebel-lion. Because of the enormous disturbances this is causing in world economy, an imperialist military super…
option=com_onlinejudge&Itemid=8&page=show_problem&problem=3142" target="_blank" style="">题目链接:uva 11991 - Easy Problem from Rujia Liu? 题目大意:给出一个包括n个整数的数组,你须要回答若干询问,每次询问两个整数k和v,输出从左到右第k个v的下标 解题思路:用map映射一个vector,相应即为m…
CJOJ 2485 UVa 11991 生日礼物 / UVa 11991 Easy Problem from Rujia Liu? Description (原题来自刘汝佳<训练指南>Page187,UVa 11991.) 可爱的小F就要过生日啦,为了刷存在感,我们的小F十分诚恳(xian de mei shi)地向女神小E要生日礼物.不过傲娇(2333)的小E当然不会随便答应的啦~为了为难小F,小E就说: "如果你能做出这道简单题,我就给你礼物:如果做不出来,嘿嘿嘿嘿-"…
题目大意:有n个人,已知每人有ki个糖纸,并且知道每张糖纸的颜色.其中,Bob希望能和同伴交换使得手上的糖纸数尽量多.他的同伴只会用手上的重复的交换手上没有的,并且他的同伴们之间不会产生交换.求出Bob能拥有的最大糖纸种数. 题目分析:对于Bob拥有的糖纸,从源点s连一条弧,容量为Bob拥有的数量:对于Bob的小伙伴,从Bob连一条弧向他拥有的糖纸,容量为拥有数量减1,对于他不拥有的糖纸,连一条有向弧从糖纸到他,容量为1:对于每一种糖纸,连一条弧向汇点t.最大流便是答案. 代码如下: # inc…
开始眨眼一看怎么也不像是网络流的一道题,再怎么看也觉得像是搜索.不过虽然这道题数据范围很小,但也不至于搜索也是可以随随便便就可以过的.(不过这道题应该是special judge,因为一题可以多解而且题目中然而并没有什么要求,所以说可以考虑思考一下这道题有木有什么"套路"之类的通法) 比如说有这么一组数据 原矩阵 输入 然后将每一行的和写在每一列对应的行上(很明显有问题) 然后调整,为了简便先每个向右挪个1(保障不会出现0什么之类的),接着就随便怎么移都可以,只要第一列满足且每一行的和…
Easy Problem from Rujia Liu? Though Rujia Liu usually sets hard problems for contests (for example, regional contests like Xi'an 2006, Beijing 2007 and Wuhan 2009, or UVa OJ contests like Rujia Liu's Presents 1 and 2), he occasionally sets easy probl…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3549 Network flow is a well-known difficult problem for ACMers. Given a graph, your task is to find out the maximum flow for the weighted directed graph. Input The first line of input contains an integer…
Easy Problem from Rujia Liu? Though Rujia Liu usually sets hard problems for contests (for example, regional contests like Xi'an 2006, Beijing 2007 and Wuhan 2009, or UVa OJ contests like Rujia Liu's Presents 1 and 2), he occasionally sets easy probl…
11991 - Easy Problem from Rujia Liu? Time limit: 1.000 seconds Problem E Easy Problem from Rujia Liu? Though Rujia Liu usually sets hard problems for contests (for example, regional contests like Xi'an 2006, Beijing 2007 and Wuhan 2009, or UVa OJ con…
Flow Problem Time Limit: 5000/5000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 15345    Accepted Submission(s): 7234 Problem Description Network flow is a well-known difficult problem for ACMers. Given a graph,…
String Problem Time Limit: 10 Sec  Memory Limit: 64 MB[Submit][Status][Discuss] Description Input Output Sample Input 1 3 135 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 0 0 3 1 0 0 4 0 0 Sample Output 3 HINT Solution 官方题解: 首先将点分为3类 第一类:Pij 表示第i个点和第j个点组合…
3218: a + b Problem Time Limit: 20 Sec  Memory Limit: 40 MBSubmit: 2229  Solved: 836[Submit][Status][Discuss] Description Input   Output   Sample Input 10 0 1 7 3 9 2 7 4 0 9 10 5 1 0 4 2 10 2 7 9 1 5 7 2 6 3 5 3 6 2 6 6 4 1 8 1 6 1 6 0 6 5 2 2 5 0 9…
题目链接: option=com_onlinejudge&Itemid=8&page=show_problem&problem=3142">https://uva.onlinejudge.org/index.php? option=com_onlinejudge&Itemid=8&page=show_problem&problem=3142 题意: 给一个长度n的序列.有m询问,每一个询问会问第k个出现的数字的下标是多少 用map记录 代码:…
https://vjudge.net/problem/UVA-10779#author=0 网络流 1.Bob向他有的贴纸连边,流量为他有的贴纸数量 2.每一种贴纸向汇点连流量为1的边 3.其余人,如果没贴纸i,由i向这个人连一条流量为1的边 4.如果贴纸i数量>1,由这个人向i连一条流量为数量-1的边 #include <cstdio> #include <algorithm> #include <queue> using namespace std; ; ;…
题目链接:https://cn.vjudge.net/problem/UVA-10779 前言: 本题是关于姜志豪<网络流的一些建模方法>的笔记. 知识点: 最大流 题意摘抄: \(Bob\) 和他的朋友从糖果包装里收集贴纸.\(Bob\) 和他的朋友总共 \(n\) 人.共有 \(m\) 种不同的贴纸. 每人手里都有一些(可能有重复的)贴纸,并且只跟别人交换他所没有的贴纸.贴纸总是一对一交换. \(Bob\) 比这些朋友更聪明,因为他意识到只跟别人交换自己没有的贴纸并不总是最优的.在某些情况…
矩阵解压 紫书P374 建模真的是挺难的,如果直接给我这题,我是想不到用网络流的,所以还应多做网路流建模,学会如何转化成网络流 还有,现在用的EK算法是比较慢的,还应去看看Dnic和ISAP,并且理解和应用 [题目链接]矩阵解压 [题目类型]网络流建模 &题解: 我先是看了紫书,懂了他的思路,感觉不算难,就自己写了一下.写完之后,哎我去,那EK写的惨不忍睹啊,静无限循环了,→_→ 接着,就照的刘汝佳的代码码了一遍,样例都过不去.= = 又找了半天的bug,发现push的边push错了,改完终于a…
题目链接. 分析: 网络流增广路算法模板题.http://www.cnblogs.com/tanhehe/p/3234248.html AC代码: #include <iostream> #include <queue> #include <cstdio> #include <cstring> using namespace std; ; <<); int cap[maxn][maxn], flow[maxn][maxn]; int n; int…
uva 10330 - Power Transmission 题目大意:最大流问题. 解题思路:増广路算法. #include <stdio.h> #include <string.h> #include <queue> using namespace std; #define min(a,b) (a)<(b)?(a):(b) const int N = 105; const int INF = 0x3f3f3f3f; int n, s[N], g[N][N],…
题意:给定上一个网络,每个边有一个容量,问你能不能从 1 到 n,使得流量为 c,如果不能,那么是不是可以修改一条边,使得达到. 析:背景就是一个网络流,如果原图能跑出来,那么就不用了,就肯定能达到,如果不能,那么修改的边肯定是最小割里的边,那么就枚举这最小割里的边,这样可能会超时,所以就优化,其中一个优化就是每次不是从0开始跑,而是在第一次的基础再走,把两次的流量加起来如果超过c了,那么就能,再就是可以每次不用跑出最大流,如果流量超过c了,就可以结束了. 代码如下: #pragma comme…
https://vjudge.net/problem/UVA-10779 题意:n个人,m种贴纸,每个人开始有一些贴纸 第一个人可以跟任何人交换任何贴纸 其余人只能用重复的贴纸 跟第一个人交换他们没有的贴纸 问第一个人最后最多有多少种贴纸 关键点:其余人只能从第一个人手中得到一张他们没有的贴纸,每种贴纸 最多给第一个人 这种贴纸数-1张 建图: 第一个人向它有的贴纸连边,流量为他有的贴纸数量 每一种贴纸向汇点连流量为1的边 其余人,如果没有贴纸i,由i向这个人连一条流量为1的边, 如果贴纸i数量…
Flow Problem Time Limit: 5000/5000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 6987    Accepted Submission(s): 3262 Problem Description Network flow is a well-known difficult problem for ACMers. Given a graph, y…
Many areas of Computer Science use simple, abstract domains for both analytical and empirical studies. For example, an early AI study of planning and robotics (STRIPS) used a block world in which a robot arm performed tasks involving the manipulation…
这是一道不错的练最大流建模的基础题. 这种题目审题是关键. Bob's friends will only exchange stickers with Bob, and they will give away only duplicate stickers in exchange with different stickers they don't possess. 意思就是说,Bob的朋友们只会和Bob交换贴纸,并且呢,他们只会赠送给Bob他们有的重复的的贴纸,以换取他们没有的贴纸. 上面还…
题目传送门 题意:训练指南P187 分析:用vector存id下标,可以用map,也可以离散化用数组存(发现不用离散化也可以) map #include <bits/stdc++.h> using namespace std; map<int, vector<int> >mp; int main(void) { int n, m; while (scanf ("%d%d", &n, &m) == 2) { mp.clear (); f…
很容易想到源点向所类型有贴纸连边,容量为Bob一开始有的数量:然后贴纸向汇点连边,容量为1. 接下来就是交换部分的连边了.注意交换一次一次进行,每次只能交换一张. 交换,是对于两种贴纸而言,仅会发生在一种贴纸朋友拥有的数量为0,而另一种朋友拥有的数量大于1. 于是这么建图,对于每一个朋友,如果贴纸数为0,那么这种贴纸向这个朋友连一条容量为1的边:如果数量x大于1,那边这个朋友向这种贴纸连一条容量为x-1的边. #include<cstdio> #include<cstring> #…
水题 学习一下数据的存储方法. #include<iostream> #include<cstdio> #include<cstdlib> #include<stack> #include<queue> #include<vector> #include<map> using namespace std; int n,m; map<int,vector<int> >a; int main() { w…