
图论----------------------------
文章平均质量分 86
Fsss_7
这个作者很懒,什么都没留下…
展开
-
ICPCCamp2016day3 E.Intersection
链接:等camp过后挂出来再加题意:给一组n,m表示有一个长为n的未知的字符串S,并且有m组关系,每组关系给定x,y,l表示在串S中的以第x个字符开始长度为l的子串和以第y个字符开始长度为l的子串相等。n,m分析:首先暴力肯定是不可取的O(m*l),那么对于这种匹配式的统计该怎么办呢?首先要知道的时候加速匹配是肯定要的,怎么加速呢?我们将每一次的关系的l分成两部分2^k长度,就像rmq的询原创 2016-01-27 22:38:36 · 860 阅读 · 0 评论 -
hdu4126Genghis Khan the Conqueror
链接:http://acm.hdu.edu.cn/showproblem.php?pid=4126题意:给定n个点的m条边,其中有q条边中的一条一定会变大(每一条变大的概率相同),求变大之后最小生成树边权和的期望。分析:最小生成树+树形dp的好题。首先我们要确定最初的最小生成树是有哪些边组成的,然后对于每一条可能变大的边进行判断,这样变大的边就会被分为两类A:变大的边不是最小生成树中的边,原创 2016-08-05 23:21:02 · 504 阅读 · 0 评论 -
hdu3311Dig The Wells
链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=3311题意:n个和尚住的地方,m个其他地方。每个地方挖一口井需要花费q[i]的钱,两个地方连通需要花费对应的边权值。求所有人都能喝到水的最小花费。分析:斯塔纳树。如hdu4085,只要在加一位二进制表示集合内是否已经有水了即可。详见代码。代码:#include#include原创 2016-08-29 13:34:51 · 661 阅读 · 0 评论 -
bzoj1001: [BeiJing2006]狼抓兔子
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1001题意:中文题。分析:如果直接跑网络流的话因为点和边太大(实际bz上的数据能跑?),所有去学了下平面图求最小割转对偶图最短路,周冬的浅析最大最小定理在信息学竞赛中的应用讲得挺清楚的。代码:#include#include#include#include#include原创 2016-08-08 20:35:32 · 388 阅读 · 0 评论 -
poj3164Command Network
链接:http://poj.org/problem?id=3164题意:给定n个点和m条有向边,求以1为根的生成树。分析:最小树形图,朱刘算法裸题。O(n^3)。代码:#include#include#include#include#include#include#include#include#include#include#include#include原创 2016-08-10 03:58:34 · 314 阅读 · 0 评论 -
UVA10054The Necklace
链接:http://vjudge.net/problem/18806题意:给定n个珠子,每个珠子有一左一右两个颜色,颜色编号为1~50。求给定的珠子是否能串成一个项链,珠子相连连接的地方颜色要求一样。能串成一个项链则输出一种项链的顺序。分析:我们如果将一颗珠子的两个颜色直接看成是一条无向边的话,那么这个题就是要求是否存在一条欧拉回路啦。判无向图是否为欧拉回路:1,图要求连通。2,所有点的度原创 2016-09-16 16:44:43 · 433 阅读 · 0 评论 -
hdu2242考研路茫茫——空调教室
链接:http://acm.hdu.edu.cn/showproblem.php?pid=2242题意:中文题。分析:边-双连通分量,之间在桥那里树dp即可。代码:#include#include#include#include#include#include#include#include#include#include#include#include#p原创 2016-09-16 20:58:01 · 438 阅读 · 0 评论 -
hdu4005The war
链接:http://acm.hdu.edu.cn/showproblem.php?pid=4005题意:给定n个点m条边的无向图,求任意添加一条边后的最小割边的最大值。分析:因为是图很明显我们要先缩点将图缩成一颗树,然后会发现题目变成在树上添加一条边求最小不在环上的最大值。很显然那个最大值应该尽量不和最小边在一条链上,那么我们以最小边为根dfs确定一条链尽可能将小边包含使得不在链上的边的最原创 2016-10-08 23:15:53 · 399 阅读 · 0 评论 -
poj1515 Street Directions
链接:http://poj.org/problem?id=1515题意:给定一个n个点m条边的无向图。现在需要将所有边变为一条单向或者两条单向并且使得任意两点i,j能互相到达,要求变成两条单向的边最少。分析:只有桥需要变成两条单向边,其他的边按dfs过程指向即可。代码:#include#include#include#include#include#include#in原创 2016-11-03 16:47:00 · 480 阅读 · 0 评论 -
hdu3062Party
链接:http://acm.hdu.edu.cn/showproblem.php?pid=3062题意:中文题。分析:裸的2-sat模板题。代码:#include#include#include#include#include#include#include#include#include#include#include#include#include#p原创 2016-11-03 21:25:59 · 372 阅读 · 0 评论 -
hdu3394Railway
链接:http://acm.hdu.edu.cn/showproblem.php?pid=3394题意:给定一个n个点m条无向边的图。求有多少个桥以及有多少条边会在两个环中。分析:点双联通分量的题,桥就是割边,冲突边就是一个点联通分量中边>点就是啦。代码:#include#include#include#include#include#include#include#原创 2016-10-27 21:51:11 · 459 阅读 · 0 评论 -
hdu2460Network
链接:http://acm.hdu.edu.cn/showproblem.php?pid=2460题意:给出一个n个点m条无向边,然后逐步加入一些边,求每次加入当前边后图内还剩多少条割边。分析:先用tarjan缩点,将图缩成一颗树,然后在树上加个边权每次缩到lca就好了。详见代码。代码:#include#include#include#include#include#in原创 2016-10-07 21:36:45 · 728 阅读 · 0 评论 -
hdu5934Bomb
链接:http://acm.hdu.edu.cn/showproblem.php?pid=5934题意:给定二维平面上n个炸弹,每个炸弹有引爆需要的费用,如果一个炸弹引爆那么在它的半径范围内的炸弹也会被引爆(不需要花费),求引爆所有炸弹的最小花费。分析:每个炸弹向能炸到的炸弹连一条有向边,然后有向图缩点成一个DAG图,那么我们只需要花费引爆所有起点即可。代码:#include#i原创 2016-11-01 15:09:50 · 564 阅读 · 0 评论 -
hdu5943Kingdom of Obsession
链接:http://acm.hdu.edu.cn/showproblem.php?pid=5943题意:给定n和s,要求将1~n与s+1~s+n一一匹配使得i匹配j有i整除j。求是否能完全匹配。分析:很容易想到如果错开的max(s+1,n+1)~s+n中有>1个素数的话显然是不能完全匹配的,而1e9内素数的间隔不会大于500,叉姐说很容易证明最优匹配重叠的那段一定是互相匹配的,但是窝不知道原创 2016-11-01 19:17:24 · 653 阅读 · 0 评论 -
hdu1824Let's go home
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1824题意:中文题。分析:处理清楚题目所说的逻辑关系就是一个基础的2-sat问题了。代码:#include#include#include#include#include#include#include#include#include#include#include#i原创 2016-11-17 21:19:51 · 642 阅读 · 0 评论 -
Codeforces Round #378 (Div. 2) F. Drivers Dissatisfaction
链接:http://codeforces.com/contest/733/problem/F题意:给定n个点m条边的联通图和一个s,每条边有边权w和费用c(花费c可以使权值-1)。最多花费s求一棵权值最小的生成树。分析:很容易想到如果确定了树,那么费用肯定是全部用在c最小的那条边上,这样肯定是最优的。也就是说我们只需要确定哪一条是那条花费s的边,我们先按w建一颗最小生成树,然后得到初始an原创 2016-11-15 13:59:36 · 538 阅读 · 0 评论 -
hdu3622Bomb Game
链接:http://acm.hdu.edu.cn/showproblem.php?pid=3622题意:给定n对点,每对点需要选择其中之一放一个炸弹,炸弹的半径随意,但是两个炸弹的爆炸覆盖面积不允许重叠。求使得所有炸弹半径中最小值最大的那个最大值。分析:最小值最大很经典就是二分答案,然后怎么判断呢?我们根据两两之间的互斥关系建立一些表达式然后就是一个2-sat问题啦。代码:#inc原创 2016-11-20 18:46:20 · 619 阅读 · 0 评论 -
hdu1816Get Luffy Out *
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1816题意:有2*n种钥匙,n对钥匙的约束(用了一把另一把那种钥匙就不能用了),m扇门。每扇门上有两把锁,打开一把就能打开门。问最多能打开多少扇门。分析:求最大值我们可以二分,然后根据约束条件用2-SAT算法就行了。代码:#include#include#include#include原创 2016-11-23 22:50:00 · 678 阅读 · 0 评论 -
hdu4085Peach Blossom Spring
链接:http://acm.hdu.edu.cn/showproblem.php?pid=4085题意:有n个点m条无向边有边权,给定k,2*k分析:斯塔纳树的题。因为看到k比较小很容易想到用状态压缩表示哪些点已经连通了,那么我们设状态dp[i][j]表示以i为根的树并且已经包含了j状态的点的最小花费,那么转移有:dp[i][j]=min(dp[i][j']+dp[i][j-j'])其中j原创 2016-08-27 14:25:17 · 896 阅读 · 0 评论 -
51nod大灾变
链接:http://www.51nod.com/contest/problem.html#!problemId=1757题意:中文题。分析:因为要去最少时间,二分答案比较容易想到,但是二分后怎么判断呢?我们建模跑网络流,当前答案为x,源点向每个非洞口节点连一条容量为1的边,将所有洞口拆成x个点每个点都向汇点连一条容量为1的边,我们对于所有非洞口a向所有在x时间内能到达的洞口b的第dis[a原创 2016-08-05 19:57:43 · 943 阅读 · 0 评论 -
hdu4081Qin Shi Huang's National Road System
链接:http://acm.hdu.edu.cn/showproblem.php?pid=4081题意:给定n个点,每个点有点权,求生成树,然后删掉一条边增加一条魔法边使得魔法边连的两个节点的点权和除以剩余边的和最大。分析:先求最小生成树,枚举删哪条边和删完后两颗子树中的最大点权,魔法边就是连这条个点。代码:#include#include#include#include#原创 2016-08-05 01:59:16 · 404 阅读 · 0 评论 -
Educational Codeforces Round 9
链接:http://codeforces.com/contest/632problemA:给定n,p,表示有n个人买了苹果(每次买剩下苹果的一半),p表示苹果的单价且为偶数,接下来n行字符串half表示当时第i个人买的时候苹果数为偶数,halfplus表示第i个人买的时候为奇数个,这个时候卖完之后剩的半个苹果会当礼物送给这个人。求一个卖了多少钱。O(n)分析:逆着算出总苹果数,再顺着算一下原创 2016-03-16 20:56:33 · 397 阅读 · 0 评论 -
BCBestCoder Round #74
链接:BestCoder Round #74A:给定n,接下来是n-1个整数a[i]。a[i]表示在字符串s中从第i个开始的子串和从第i+1个开始的子串的最长公共前缀为a[i]。求字符串s有多少种情况。分析:首先我们处理无解的情况,显然a[i]+i>n是无解的,并且相邻的a[i]如果非0则必然为a[i]-1==a[i+1]。然后就只要算方案数了。O(n)代码:#include#i原创 2016-03-06 21:17:14 · 317 阅读 · 0 评论 -
POJ1273Drainage Ditches
链接:http://poj.org/problem?id=1273题意:给定n条边和m个点的图,有边权。求从1到m的最大流量。分析:学习网络流的第一题,dinic算法的裸题。代码:#include#include#include#include#include#include#include#include#include#include#include#in原创 2016-07-11 11:00:56 · 319 阅读 · 0 评论 -
计蒜客 菜鸟物流的运输网络
链接:https://nanti.jisuanke.com/t/11215题意:中文题。分析:网络流练习第二题,比较经典的模型,因为每个点只能经过一次,那么我们可以将点x拆为x和x+n,然后在x~x+n中间连一条容量为1的边,然后建一个超级源和超级汇,超级源只连mid点且容量为2,x和y各连一条容量为2的边到超级汇,然后dinic跑跑就是了。代码:#include#include原创 2016-07-11 17:01:28 · 647 阅读 · 0 评论 -
计蒜客 百度地图的实时路况
链接:https://nanti.jisuanke.com/t/11217题意:中文题。分析:首先我们会想到一个最暴力的做法,枚举v然后做Floyd,这样是O(n^4)的,时间不够。那我们仔细观察一下Floyd这个过程,我们会发现k时增量,我们每次用dis[i][k]+dis[k][j]来更新dis[i][j]。这里我们用分治处理这个k,分治处理k的区间[l,r],那么我们就能将复杂度降到原创 2016-07-12 20:37:35 · 577 阅读 · 0 评论 -
hdu4786Fibonacci Tree
链接:http://acm.hdu.edu.cn/showproblem.php?pid=4786题意:给定n个点m条边,边分为黑白两种边。问是否存在一棵生成树使得树中的白边数量是一个斐波那契数。分析:很明显可行的斐波那契数很少才24个,但是怎么判断当前这个数是否能是一棵生成树中的白边数呢?首先肯定是要判断所有边是否能生成树。然后最少要用多少条白边呢?用完所有的黑边还缺多少条边生成树就差多原创 2016-07-24 20:12:41 · 536 阅读 · 0 评论 -
swust1736: 飞行员配对方案问题
链接:http://www.oj.swust.edu.cn/problem/show/1736题意:中文题。分析:网络流24题第一题。在两个匹配的飞行员之间连一条容量为1的边,然后建一个超级源和超级汇,外籍飞行员连源容量为1,皇家飞行员连汇容量为1。然后跑一遍dinic就行了。代码:#include#include#include#include#include#incl原创 2016-07-13 10:42:11 · 373 阅读 · 0 评论 -
swust1738: 最小路径覆盖问题
链接:http://www.oj.swust.edu.cn/problem/show/1738题意:中文题。分析:网络流24题第三题。最小路径覆盖,我们可以转换成二分图匹配去做,将点i拆成点i和点i+n,每一条边(i,j)变成i与j+n相连,然后匹配。为什么能转呢?我们可以先将这n个点看成是孤立的,也就是n条路径覆盖,然后我们试着加边,每加一条边将一对路径的首尾连起来那么路径数就少了一条,原创 2016-07-13 16:07:18 · 396 阅读 · 0 评论 -
swust1740: 圆桌问题
链接:http://www.oj.swust.edu.cn/problem/show/1740题意:中文题。分析:网络流24题第五题。模型比较基础,从超级源连边到每个代表团,容量为他们的人数,每个桌子连一条边到超级汇,每个代表团都连一条边到每张桌子容量为1。那么最大流等于总人数就是yes啦。代码:#include#include#include#include#includ原创 2016-07-13 21:24:53 · 500 阅读 · 0 评论 -
swust1739: 魔术球问题
链接:http://www.oj.swust.edu.cn/problem/show/1739题意:中文题。分析:网络流24题第四题。我们二分1~n最少需要多少根柱子,然后就是最小路径覆盖啦,不懂的转swust1738,然后找到边界就行了。代码:#include#include#include#include#i原创 2016-07-13 21:17:07 · 363 阅读 · 0 评论 -
swust1741: 最长递增子序列问题
链接:http://www.oj.swust.edu.cn/problem/show/1741题意:中文题。分析:网络流24题第六题。第一问:直接n^2处理出所有的f[i],f[i]表示以a[i]为结尾的最长上升子序列有多长。第二问和第三问就要用网络流建模做啦。怎么建呢?我们观察两个问题的关键点,第二问:取出长度为s且每个点最多拿一次,每个点最多只能拿一次!那么这里就有对点i拆点啦,拆成i原创 2016-07-14 15:29:53 · 376 阅读 · 0 评论 -
试题库问题
链接:swust的oj竟然没有SPJ,做法不一样,a不了。题意:中文题。分析:网络流24题第七题。多重匹配的基础问题,模型很简单。代码:#include#include#include#include#include#include#include#include#include#include#include#include#include#pragma原创 2016-07-14 16:42:19 · 548 阅读 · 0 评论 -
swust1737: 太空飞行计划问题
链接:http://www.oj.swust.edu.cn/problem/show/1737题意:中文题。分析:网络流24题第二题。对每个实验加一条容量为经费的边与超级源相连,对每个仪器加一条容量为花费的边与超级汇相连。每个项目和对应的仪器直接连一条容量为无穷大的边。然后我们跑dinic是求出的最小割,然后我们将总的经费减去最小割(费用总和)就能得到最大收益啦。输出的时候有个点:我们直接原创 2016-07-13 14:50:05 · 457 阅读 · 0 评论 -
swust1744: 方格取数问题
链接:http://www.oj.swust.edu.cn/problem/show/1744题意:中文题。分析:要求选出的数总和最大。我们将一行的格子黑白染色,然后将所有黑格子与源相连边的容量为他们的值,所有白格子与汇相连边的容量为他们的值,对于每个黑格子与相邻的白格子练一条容量为无穷大的边。这样我们就建成了一个找二分图最小割(最大流)的图,然后我们将所有格子的总和减去这个图跑出的最大流原创 2016-07-14 20:21:42 · 543 阅读 · 0 评论 -
hdu5772String problem
链接:http://acm.hdu.edu.cn/showproblem.php?pid=5772题意:给定一个只包含字符‘0’~‘9’,给定每个种字符的花费计算公式(建题面)和同时选择第i个字符和第j个字符的收益w[i][j]和w[j][i]。求选择若干字符能得到的最大收益。分析:补一波最大权闭合图。我们对所有点对(i,j)的收益向源建容量为收益的边,1~n个位置和0~9字符向汇建花费的原创 2016-07-30 16:00:39 · 608 阅读 · 0 评论 -
hdu5545The Battle of Guandu
链接:http://acm.hdu.edu.cn/showproblem.php?pid=5545题意:有n个村庄和m个战场,从第i个村庄花费ci能让一个人去曹操的xi战场,一个人去袁绍的yi战场,对于每个战场有一个战略意义wi(0/1/2),为0的话输赢无所谓,为1的话不能输,为2必须赢,求最小花费使得曹操能赢整个大局,无解输出-1。分析:对于每一个wi=2的战场因为贪心的话曹操的人一定原创 2016-07-30 22:59:02 · 702 阅读 · 0 评论 -
hdu1811Rank of Tetris
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1811题意:中文题。分析:先用并查集缩下点,然后用拓扑排序判断一些各种情况即可。代码:#include#include#include#include#include#include#include#include#include#include#include#inc原创 2016-08-03 17:52:44 · 554 阅读 · 0 评论 -
hdu4115Eliminate the Conflict
链接:http://acm.hdu.edu.cn/showproblem.php?pid=4115题意:两个人猜拳,B提前知道了A的出手情况,但是对B的出手有要求,(a,b,k)当k=0时要求B的第a次出手和第b次出手要一样,当k=1时要求B的第a次出手和第b次出手不一样。问B能否一局都不输。分析:将B的每次出手分解成3种(石头,剪刀,布)情况,然后根据题目要求对其进行真假限制建立2-sa原创 2016-12-30 19:21:50 · 594 阅读 · 0 评论