自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Remilia's

此博客停更了,新博客地址www.zhuoyifan.net

  • 博客(49)
  • 收藏
  • 关注

原创 HDU 3264 Open-air shopping malls(二分+圆交)

HDU 3264 Open-air shopping malls题目链接题意:给定一些圆,求以一个圆的圆心为圆心,自己定一个半径,使得和其他所有圆交面积都大于该圆的一半,求这个半径的最小值思路:很显然的二分半径,判断方法就枚举一个圆心,然后和每个圆求圆交面积即可代码:#include #include #include #include using

2014-11-28 19:09:40 781

原创 POJ 3925 Minimal Ratio Tree(枚举+最小生成树)

POJ 3925 Minimal Ratio Tree题目链接题意:给定一些点权和一个边权矩阵,求一个最小的比例的树思路:先枚举用哪些点,然后求最小生成树即可代码:#include #include #include using namespace std;const int N = 20;int n, m, val[N], edge[N][N

2014-11-28 18:46:00 1349

原创 HDU 3949 XOR(高斯消元搞基)

HDU 3949 XOR题目链接题意:给定一些数字,问任取几个异或值第k大的思路:高斯消元搞基,然后从低位外高位去推算代码:#include #include #include using namespace std;typedef long long ll;const int N = 10005;int t, n;ll a[N];vo

2014-11-19 20:36:55 1476

原创 HDU 1348 Wall(凸包模板题)

HDU 1348 Wall题目链接就是求出凸包,计算凸包周长,然后加上圆周长即可代码:

2014-11-18 22:39:20 854

原创 ZOJ 3209 Treasure Map(DLX精确覆盖)

ZOJ 3209 Treasure Map题目链接题意:给一个大矩形和一些小矩形,问最少几个矩形能覆盖大矩形,不能重复思路:dlx精确覆盖,以每个矩形个格点为列,以每个小矩形为行,做精确覆盖即可代码:

2014-11-18 10:15:34 766

原创 POJ 3740 Easy Finding(DLX精确覆盖裸题)

POJ 3740 Easy Finding题目链接题意:选一些行,要求每行正好覆盖一个列思路:精确覆盖裸题代码:#include #include using namespace std;const int MAXNODE = 500010;const int MAXN = 510;const int MAXM = 1010;const i

2014-11-17 21:24:47 774

原创 HDU 5046 Airport(DLX重复覆盖)

HDU 5046 Airport题目链接题意:给定一些机场,要求选出K个机场,使得其他机场到其他机场的最大值最小思路:二分+DLX重复覆盖去判断即可代码:#include #include using namespace std;const int MAXNODE = 4005;const int MAXM = 65;const int MAX

2014-11-17 00:12:51 1371

原创 FZU 1686 神龙的难题(DLX重复覆盖)

FZU 1686 神龙的难题题目链接题意:中文题思路:每一个1看成列,每个位置作为左上角的矩阵看成行,dlx重复覆盖即可代码:#include #include using namespace std;const int MAXNODE = 66666;const int INF = 0x3f3f3f3f;const int MAXM = 23

2014-11-17 00:05:05 1581

原创 SPOJ COWPIC(逆序对变形题)

SPOJ COWPIC题目链接题意:一个序列,相邻可以交换,问最少交换几次使得变成循环的1-n的其中一种思路:对于原来正常的变换成1-n而言,答案就是逆序对了,而多了这么一个变形,其实只需要考虑一下,先求出变换成1-n的逆序对,然后如果原序列变成2, 3, 4 ... n, 1的话,等于是在原来的序列上,把每个数字模1加n之后求逆序对,那么对于这个新序列而言,只有原来最大的

2014-11-13 18:58:03 1209

原创 【图论】网络流总结

【图论】网络流总结最大流部分网络流题目的关键:看出是网络流并且确定正确的模型最大流算法:用来解决从源点s到汇点t,整个网络最多能输送多少流量的题目模板:#include #include #include #include using namespace std;const int MAXNODE = 105 * 2;const int MAX

2014-11-13 12:34:29 2279 1

原创 POJ 3155 Hard Life(最大密度子图)

POJ 3155 Hard Life题目链接最大密度子图模板题代码:#include #include #include #include using namespace std;const int MAXNODE = 1105;const int MAXEDGE = 100005;typedef double Type;const Type I

2014-11-12 22:57:45 1173

原创 HDU 3157 Crazy Circuits(有源汇上下界最小流)

HDU 3157 Crazy Circuits题目链接题意:一个电路板,上面有N个接线柱(标号1~N),还有两个电源接线柱 + -,给出一些线路,每个线路有一个下限值求一个可以让所有部件正常工作的总电流 没有则输出impossible思路:有源汇有上下界求最小流,建模方法为:按无源汇先建图,跑超级源汇ss->tt一次,然后加入t->s,容量INF的边,在跑一次ss-

2014-11-12 21:49:01 1267

原创 HDU 2732 Leapin' Lizards(拆点+最大流)

HDU 2732 Leapin' Lizards题目链接题意:有一些蜥蜴在一个迷宫里面,有一个跳跃力表示能跳到多远的柱子,然后每根柱子最多被跳一定次数,求这些蜥蜴还有多少是无论如何都逃不出来的。思路:把柱子拆点建图跑最大流即可,还是挺明显的代码:#include #include #include #include #include using n

2014-11-12 15:09:54 1219

原创 HDU 3416 Marriage Match IV(最短路+最大流)

HDU 3416 Marriage Match IV题目链接题意:给一个有向图,给定起点终点,问最多多少条点可以重复,边不能重复的最短路思路:边不能重复,以为着每个边的容量就是1了,最大流问题,那么问题只要能把最短路上的边找出来,跑一下最大流即可,判断一条边是否是最短路上的边,就从起点和终点各做一次dijstra,求出最短路距离后,如果一条边满足d1[u] + d2[v]

2014-11-11 20:33:25 899

原创 HDU 3277 Marriage Match III(二分+最大流)

HDU 3277 Marriage Match III题目链接题意:n个女孩n个男孩,每个女孩可以和一些男孩配对,此外还可以和k个任意的男孩配对,然后有些女孩是朋友,满足这个朋友圈里面的人,如果有一个能和某个男孩配对,其他就都可以,然后每轮要求每个女孩匹配到一个男孩,且每轮匹配到的都不同,问最多能匹配几轮思路,比HDU3081多了一个条件,此外可以和k个任意的男孩配对,转化

2014-11-11 19:31:34 1023 1

原创 HDU 3081 Marriage Match II(二分+最大流)

HDU 3081 Marriage Match II题目链接题意:n个女孩n个男孩,每个女孩可以和一些男孩配对,然后有些女孩是朋友,满足这个朋友圈里面的人,如果有一个能和某个男孩配对,其他就都可以,然后每轮要求每个女孩匹配到一个男孩,且每轮匹配到的都不同,问最多能匹配几轮思路:二分轮数k,然后建图为,源点连向女孩,男孩连向汇点容量都为k,然后女孩和男孩之间连边为,有关系的连

2014-11-11 18:47:57 893

原创 HDU 3338 Kakuro Extension(网络流)

HDU 3338 Kakuro Extension题目链接题意:完成如图的游戏,填充数字1-9思路:网络流的行列模型,把每行每列连续的一段拆分出来建图即可,然后题目有限制一个下限1,所以 每行每列的容量减去相应的数字,然后建图建容量8就好,这样就默认原来容量已经有1了代码:#include #include #include #include usi

2014-11-11 13:41:59 993

原创 HDU 2883 kebab(最大流)

HDU 2883 kebab题目链接题意:有一个烧烤机,每次最多能烤 m 块肉,现在有 n 个人来买烤肉,每个人到达时间为 si,离开时间为 ei,点的烤肉数量为 ci,每个烤肉所需烘烤时间为 di,注意一个烤肉可以切成几份来烤思路:把区间每个点存起来排序后,得到最多2 * n - 1个区间,这些就表示几个互相不干扰的时间,每个时间内只可能有一个任务器做,这样建模就简单了,

2014-11-10 23:42:55 1014

原创 HDU 1733 Escape(分层网络流)

HDU 1733 Escape题目链接题意:给定一个图,#是墙,@是出口,.可以行走,X是人,每个时间每个格子只能站一个人,问最少需要多少时间能让人全部撤离(从出口出去)思路:网络流,把每个结点每秒当成一个结点,这样枚举时间,每多一秒就在原来的网络上直接加一层继续增广即可,注意考虑方向的时候,要考虑上原地不动代码:#include #include #i

2014-11-10 22:03:57 1262

原创 HDU 3215 Being a Hero(最小割)

HDU 3215 Being a Hero题目链接题意:一个英雄,分到几个城市,每个城市有一个价值,但是要求分到城市后,必须破坏掉道路使得首都1都不能到达,破坏道路有开销,问最大能获得的收益和需要破坏的道路ID思路:最小割,城市1做源点,有向边建图,容量为代价,然后每个可以分的城市连到汇点,容量为价值,跑一下最小割即可代码:#include #includ

2014-11-10 16:48:29 1071

原创 HDU 3046 Pleasant sheep and big big wolf(最小割)

HDU 3046 Pleasant sheep and big big wolf题目链接题意:一个n * m平面上,1是羊,2是狼,问最少要多少围墙才能把狼全部围住,每有到达羊的路径思路:有羊和狼,要分成两个集合互不可达,显然的最小割,建图源点连狼,容量无穷,羊连汇点,容量无穷,然后相邻格子连边,容量为1代码:#include #include #inc

2014-11-10 11:16:45 1008

原创 HDU 3035 War(对偶图求最小割)

HDU 3035 War题目链接题意:根据图那样,给定一个网络,要求阻断s到t,需要炸边的最小代价思路:显然的最小割,但是也显然的直接建图强行网络流会超时,这题要利用平面图求最小割的方法,把每一块当成一个点,共有边连边,然后每一个路径就是一个割,然后最短路就是最小割了代码:#include #include #include #include usi

2014-11-09 22:27:23 958

原创 HDU 3313 Key Vertex(dfs + bfs)

HDU 3313 Key Vertex题目链接题意:一个有向无环图,求s,t之间的割点思路:先spfa找一条最短路出来,如果不存在,就n个都是割点。然后每次从s进行dfs,找到能经过最短路上的最远点,然后这个点就是割点,然后下次在以这个为起点dfs,不断迭代直到找到t为止代码:#include #include #include #include

2014-11-09 17:24:58 1139

原创 HDU 2686 Matrix 3376 Matrix Again(费用流)

HDU 2686 Matrix题目链接3376 Matrix Again题目链接题意:这两题是一样的,只是数据范围不一样,都是一个矩阵,从左上角走到右下角在从右下角走到左上角能得到最大价值思路:拆点,建图,然后跑费用流即可,不过HDU3376这题,极限情况是300W条边,然后卡时间过了2333代码:#include #include #i

2014-11-09 10:47:56 903

原创 HDU 3061 Battle(最大权闭合)

HDU 3061 Battle题目链接思路:最大权闭合裸题代码:#include #include #include #include using namespace std;const int MAXNODE = 505;const int MAXEDGE = 200005;typedef int Type;const Type INF = 0

2014-11-09 09:53:04 631

原创 HDU 1532 Drainage Ditches(最大流)

HDU 1532 Drainage Ditches题目链接最大流模板题代码:#include #include #include #include using namespace std;const int MAXNODE = 205;const int MAXEDGE = 405;typedef int Type;const Type INF

2014-11-09 09:24:13 531

原创 HDU 1565 1569 方格取数(最大点权独立集)

HDU 1565 1569 方格取数(最大点权独立集)题目链接题意:中文题思路:最大点权独立集 = 总权值 - 最小割 = 总权值 - 最大流那么原图周围不能连边,那么就可以分成黑白棋盘,源点连向黑点,白点连向汇点,容量都为点容量,然后黑白之间相邻的就连一条容量无限大的边代码:#include #include #include #includ

2014-11-08 17:13:33 838

原创 POJ 2987 Firing(最大权闭合)

POJ 2987 Firing题目链接题意:n个人,每个人被炒由于都会得到一个利益(可正可负),现在有一些下属关系,如果一个人被炒了,他的下属要一起炒掉,问怎么炒使得炒利益最大,炒的人最少思路:最大权闭合的题,要处理最少,那么其实就是在求最小割分成两个集合的时候,尽量让点都到T集合去,那么只要从S进行一次dfs,遇到满流的边就停止,经过的点都给S,就是要炒掉的人了代

2014-11-08 13:09:52 891

原创 POJ 1637 Sightseeing tour(最大流)

POJ 1637 Sightseeing tour题目链接题意:给一些有向边一些无向边,问是否能把无向边定向之后确定一个欧拉回路思路:这题的模型非常的巧妙,转一个http://blog.csdn.net/pi9nc/article/details/12223693先把有向边任意定向了,然后根据每个点的入度出度之差,可以确定每个点需要调整的次数,然后中间就是需要调整的

2014-11-08 11:22:42 1131

原创 POJ 3422 Kaka's Matrix Travels(费用流)

POJ 3422 Kaka's Matrix Travels题目链接题意:一个矩阵,从左上角往右下角走k趟,每次走过数字就变成0,并且获得这个数字,要求走完之后,所获得数字之和最大思路:有点类似区间k覆盖的建图方法,把点拆了,每个点有值的只能选一次,其他都是无值的,利用费用流,入点出点之间连一条容量1,有费用的边,和一条容量k - 1,费用0的边,然后其他就每个点和右边和下

2014-11-08 00:09:08 830

原创 POJ 3189 Steady Cow Assignment(最大流)

POJ 3189 Steady Cow Assignment题目链接题意:一些牛,每个牛心目中都有一个牛棚排名,然后给定每个牛棚容量,要求分配这些牛给牛棚,使得所有牛对牛棚的排名差距尽量小思路:这种题的标准解法都是二分一个差值,枚举下界确定上界,然后建图判断,这题就利用最大流进行判断,值得一提的是dinic的效率加了减枝还是是卡着时间过的,这题理论上用sap或者二分图多重匹

2014-11-07 23:27:42 782

原创 POJ 3204 Ikki's Story I - Road Reconstruction(最大流)

POJ 3204 Ikki's Story I - Road Reconstruction题目链接题意:给定一个有向图,求出最大流后,问哪些边增加容量后,可以使最大流增加思路:对于一个可以增加的,必然原来就是满流,并且从源点到汇点,的一条路径上,都是还有残留容量的,这样只要从源点和汇点分别出发dfs一遍,标记掉经过点,然后枚举满流边,如果两端都是标记过的点,这个边就是可以增

2014-11-07 19:56:04 921

原创 POJ 2391 Ombrophobic Bovines(最大流+拆点)

POJ 2391 Ombrophobic Bovines题目链接题意:一些牛棚,有a只牛,现在下雨,每个牛棚容量量变成b,现在有一些道路连接了牛棚,问下雨后牛走到其他牛棚,使得所有牛都有地方躲雨,最后一只牛要走多久思路:二分答案,然后最大流去判断,建图的方式为,牛棚拆点,源点连向入点,容量为a,出点连向汇点容量为b,中间入点和出点之间根据二分的值判断哪些边是可以加入的

2014-11-07 14:17:22 968

原创 POJ 3762 The Bonus Salary!(最小K覆盖)

POJ 3762 The Bonus Salary!题目链接题意:给定一些任务,每个任务有一个时间,有k天,一个时间只能执行一个任务,每个任务有一个价值,问怎么安排能得到最多价值思路:典型的区间k覆盖问题代码:#include #include #include #include #include #include using namespace

2014-11-07 11:32:22 957

原创 POJ 3670 Intervals(费用流)

POJ 3680 Intervals题目链接题意:给定一些区间,每个区间有一个权值,要求用这些区间去覆盖,每个点最多覆盖k次,问最多得到权值多少思路:典型的区间k覆盖问题,区间连边容量1,代价-w,然后其他点相邻两两连边,容量k,代价0,跑一下费用流即可代码:#include #include #include #include #include

2014-11-06 23:54:13 745

原创 POJ 3614 Sunscreen(贪心)

POJ 3614 Sunscreen题目链接题意:转自http://blog.csdn.net/sdj222555/article/details/10698641有C个奶牛去晒太阳 (1 而刚开始的阳光的强度非常大,奶牛都承受不住,然后奶牛就得涂抹防晒霜,防晒霜的作用是让阳光照在身上的阳光强度固定为某个值。那么为了不让奶牛烫伤,又不会没有效果。给出了L种防晒霜。每

2014-11-06 23:26:11 1139

原创 POJ 3469 Dual Core CPU(最小割)

POJ 3469 Dual Core CPU题目链接题意:有a,b两台机器,有n个任务,在a机器和b机器需要不同时间,给定m个限制,如果u, v在不同机器需要额外开销,问最小开销思路:最小割,源点为a机器,汇点为b机器,这样的话求出最小割,就是把点分成两个集合的最小代价,然后如果u, v在不同机器需要开销,则连u,v v,u两条边,容量为额外开销,这样如果这条边是割边,则a

2014-11-06 22:24:04 961

原创 POJ 3281 Dining(最大流)

POJ 3281 Dining题目链接题意:n个牛,每个牛有一些喜欢的食物和饮料,每种食物饮料只有一个,问最大能匹配上多少只牛每个牛都能吃上喜欢的食物和喜欢的饮料思路:最大流,建模源点到每个食物连一条边,容量为1,每个饮料向汇点连一条边容量为1,然后由于每个牛有容量1,所以把牛进行拆点,然后食物连向牛的入点,牛的出点连向食物,跑一下最大流即可代码:#incl

2014-11-06 17:32:50 806

原创 POJ 2516 Minimum Cost(费用流)

POJ 2516 Minimum Cost题目链接题意:转一篇题意吧。。感觉写的很详细了,優YoU http://blog.csdn.net/lyy289065406/article/details/6742534 思路:一开始是把所有商家的每种物品和所有供应商所有物品连边跑费用流,结果TLE了,因为这样建出来的图,边数会非常的庞大那么其实转化一下思路,每种物品

2014-11-06 13:48:31 772

原创 POJ 2135 Farm Tour(费用流)

POJ 2135 Farm Tour题目链接题意:给定一个无向图,边有权值,求从1到n再从n到1的最短路思路:费用流,连边容量为1(注意是无向图),然后源点和1连容量2,n和汇点连容量是2代码:#include #include #include #include #include using namespace std;const int M

2014-11-05 23:17:21 748

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除