- 博客(94)
- 收藏
- 关注
原创 【noip2010】引水入城(搜索+DP)
题意 给出一张n*m的网格图代表城市,在每个格点修建水利设施有两种选择:1)处于第一行的格点可修蓄水厂 2)四周存在比它海拔更高且拥有公共边的,已经建有水利设施的相邻城市,可修建输水站。记第n行为干旱区。问是否能够使干旱区的城市均建有水利设施,若能,最少建多少蓄水厂,若不能,求不能建水利设施的城市数。数据范围 n,m<=500思路 搜索+减枝+DP 从每个第一行的点开始广
2017-10-03 20:08:02
583
原创 【noip2009】靶形数独(搜索+二进制优化)
题意 给出一张9*9的未填满的数独,以及每个网格的权值val。求Max{∑val[i][j]*a[i][j]},a[i][j]表示一张合法数独第i行j列上所填数字。数据范围 数独中非0数的个数不少于24思路 搜索+二进制优化 按照一般填数独的策略,每次选择能够填的数最少的格子填。使用二进制表示行H,列L,块X上能够填的数,第i行j列处于k块的格子能填的数的二进制表示即为H
2017-10-02 16:16:53
543
原创 【POI2014】Rally(拓扑序+线段树)
题意 给出一个n个点m条边的DAG,求删除哪一个点及其所有边使剩余图中的最长路径最短,并求出最短路径。数据范围 n<=75000,m<=100000思路 拓扑排序+线段树 一张图可能存在连通块,于是对于每个点增设类似网络流的源汇点S,T,问题转化为删点后S到T的最长路。 对于每个点i计算点S到点i的最长距离f[i],点i到点T的最长距离g[i],对于一条边(u,
2017-09-26 21:05:53
606
原创 【noip2015】斗地主(搜索+剪枝)
传送门 UOJ斗地主题意 给出一副扑克中的若干张牌,以及出扑克的规则。求最少出多少次牌将牌全部出完。思路 搜索 牌的花色无任何影响。对于n张扑克,当顺子确定,其余的牌可通过贪心来确定出最小块数。搜索分别拿几个三顺,双顺,单顺,以及各个顺子的起止点。 注意不要弄错了各种扑克的大小:3< 4< 5< 6< 7< 8< 9< 10< J< Q< K< A< 2< 小王
2017-09-23 15:39:25
485
原创 【noip2014】解方程(模意义下的哈希)
noip 2014 Day2 T3 解方程 UOJ解方程题意 求方程a0+a1∗x+a2∗x2+a3∗x3+......an∗xn=0a_0+a_1*x+a_2*x^2+a_3*x^3+......a_n*x^n=0在[1,m][1,m]内的整数解。|ai|<=1010000|a_i|<=10^{10000},n<=100,m<=1000000n<=100,m<=1000000I thi
2017-09-20 21:37:29
564
原创 【BZOJ2729】排队(组合数学 + 高精度)
传送门 HNOI2012 排队 题意:某中学有 n 名男同学,m 名女同学和两名老师要排队参加体检。他们排成一条直线,并且任意两名女同学不能相邻,两名老师也不能相邻,那么一共有多少种排法呢?(任意两人不同)I think 排列组合+高精度 考虑先放男生,后放老师,再放女生 先用男生把两个老师隔开,再用男生和老师把所有女生隔开 方案数为: A(n,n)*
2017-09-13 22:13:59
662
原创 【网络流24题】汽车加油行驶(分层图+最短路)
传送门 汽车加油行驶 题意:给定网格,部分格点设有加油站,汽车驶至该格点必须加油。给定一辆车加满油的最大行驶距离,加一次油的花费,以及在任意点设置新油库的花费。求一辆满油车从左上角格点到右下角格点的最小花费。I think 根据汽车的剩余油量建立分层图。 若油量不满,点< i,k>向点< i,top>连长度为A/A+C的边。 若油量非空,非油库点< i,k>
2017-08-28 19:22:57
574
原创 【网络流24题】火星探险(拆点+费用流)
传送门 火星探险 题意:给定网格,其中放有只能被拿取一次的岩石,求从左上角格点到右下角格点的k条路径,使得拿取的岩石总数最多。I think 最大费用流,将点拆至x,y两个集合.对于格点i在x集合中的对应点,向i在y集合中的对应点连容量为Inf,费用为0的边,若其置放岩石,再向y集中的对应点了连容量为1费用为1的边,向其右边和下边的在x集中的对应点连容量为Inf,费用为0的边.
2017-08-28 19:00:49
490
原创 【网络流24题】深海机器人(最大费用流)
传送门 深海机器人 题意:给定带一次性边权网格与若干机器人的起终点,规定起终点必须被机器人经过的次数,求所有机器人能够得到的最大边权和.I think 最大费用流,源点向起点连边,终点向汇点连边,方格上的点向相邻点连流量为1费用为val的边.除此之外,对于题目要求,”多个机器人可以在同一时间占据同一位置“,方格上的点还要向相邻点连流量为Inf,费用为0的边. 注意题面
2017-08-28 18:32:39
441
原创 【网络流24题】航空路线问题(最大费用流)
传送门 航空路线问题 题意:给定起终点,找出两条除起终点之外无相交点的最长路径.I think 最大费用流问题.拆点后对于直航< a,b>,仅当a< b时连边(若当a>b时也连边,则出现正环,SPFA无法求解),将点1与点N所连边流量设置为2,相当于找出两条除起点与终点之外无重合的路径. 输出方案时只依靠pre回头找常常是行不通的,因为如果不特殊处理,你无法知道若干条
2017-08-27 20:39:48
1019
原创 【网络流24题】孤岛营救问题(分层图+BFS)
传送门 孤岛营救问题I think 分层图问题.p枚钥匙是否拿到共有2^p种状态,用二进制表示,对于每一种状态建立分层图广搜求解. 许久不打BFS生疏了.Code#include<cstdio>#include<cstring>#include<queue>using namespace std;const int sm = 11;const int sn = 1<<1
2017-08-27 20:27:42
491
原创 【网络流24题】星际转移(分层图+枚举)
传送门 星际转移 题意:给出若干容纳人数不同的太空船循环停站路线(特定时间停特定站),任意两站之间行驶耗时为1,求k个人从起点地球到终点月球的最小耗时.I think 分层图问题.对每个太空站i在第day天建立点< i,day>,相当于在枚举day时通过添加新边和新点将图层层展开. 乘客可以在某个站点等待,因此需要增设< i,day-1> —> < i,day>容量为
2017-08-27 20:23:40
367
原创 【网络流24题】最长k可重区间集(最大费用流+二分图)
传送门 最长k可重区间集 题意:给出开区间集合,求从其中选择若干个区间使得同时有相交部分的区间数不超过k,且选择区间的长度和最大.I think 最大费用流问题.两种建模方法,简单来说一个是拆点+增设点,另一个是以离散化后的区间端点设置点,所有给出区间并集两端控流. 后者因为边数更少所以更快.关键在于每一段区间只能选择一次,因此相应边的流量总是设置为1,限制流量就需要在源/汇/
2017-08-27 20:08:07
381
原创 【网络流24题】数字梯形(二分图+最大费用流)
传送门 数字梯形 题意:求解按以下不同规则选择数字梯形中数的最大和 1)从梯形的顶至底的m条路径互不相交; 2)从梯形的顶至底的m条路径仅在数字结点处相交; 3)从梯形的顶至底的m条路径允许在数字结点相交或边相交。I think 最大费用流。对每个位置进行拆点分别在xy集合,增设源点S与汇点T,记(x,y,u,v)表示x连向y点费用为u容量为v的边
2017-08-27 19:59:13
406
原创 【网络流24题】软件补丁(最短路)
传送门 软件补丁 题意:给出若干个在特定条件下(修复前后有指定状态)适用的修复补丁,求利用给出补丁将一个有若干漏洞的软件修复为没有漏洞的软件的最小修复次数.I think 实质上是一个最短路问题,同UVA658. 用二进制串表示软件的漏洞状态,1表示存在漏洞,0表示不存在漏洞.答案即是从状态1…11(共有n个1)->0…00的最短路. 若提前建图会直接有2^
2017-08-27 19:50:23
382
原创 【网络流24题】骑士共存问题(二分图染色+最大权独立子集+最小割)
传送门 骑士共存问题I think 同方格取数相同,是最大独立集问题.连边之后,找到一个割,此时与S和T仍然连接的点必然不在一个集合中,点的数量就是答案.要答案尽量大,于是就找出最小割即可.至于如何染色,应当从题给的图中得到启发。Code#include<cstdio>#include<queue>using namespace std;const int sm = 4e4+10;
2017-08-25 22:17:36
453
原创 【网络流24题】方格取数(二分图染色+最大权独立点集+最小割)
传送门 方格取数 题意:给定权值棋盘,相邻棋子不能同时选择,求能够选出的棋子集合最大权。I think 对原图进行黑白染色,即将图分为x,y两个集合,增设源汇点S,T,S向x集合中连边,y集合中的点向T连边,边的容量均为点权,最后将x集合中的点向y中与之相邻的点连边,容量为Inf。答案最大权独立点集=∑\sum点权-最小割 。 要明确删去所有割边之后,仍然与源/汇点相
2017-08-25 22:13:46
565
原创 【网络流24题】试题库(二分图+最大流)
传送门 试题库I think 点集x,y分别放置试题与类型。源点向x集点连容量为1的边,x集点向y中其所属类型连容量为1的边,y集点向T连容量为所需量的边,求解最大流若等于总题数则有解。Code#include<cstdio>#include<queue>#include<vector>using namespace std;const int sm = 1100;const i
2017-08-25 22:02:29
446
原创 【网络流24题】最长递增子序列(DP+最大流)
传送门 最长递增子序列 题意:计算最长不降子序列长度s与数量,以及多次使用首末元素之后最多取出多少长度为s的最长不降子序列。I think 第一问DP求出f[i],表示以第i位为首位的最长不降子序列长度len,二三问网络流求解。增设源汇点S T,S向f[i]==len的点i连边,f[i]==1的点向T连边,满足i< j&&a[i]< =a[j]&&f[i]==f[j]+1的点对
2017-08-25 21:53:53
429
原创 【网络流24题】圆桌聚餐(二分图)
传送门 圆桌聚餐I think 增设源汇点S T,S向单位连容量为单位人数的边,每张桌子向T连容量为桌子容纳人数的边,每个人向每张桌子连容量为1的边,整张图的最大流==总人数时即有解。Code#include<cstdio>#include<queue>using namespace std;const int sm = 450+5;const int sn = 82000;co
2017-08-25 21:44:17
417
原创 【网络流24题】魔术球(最小路径覆盖+枚举)
传送门 魔术球 题意:向n根柱子里依次放置编号连续且递增的球。且同一根柱子里相邻两球编号和为完全平方数。求在这n根柱子里最多能放多少球。I think 模型转化:视n为路径覆盖数,枚举放入环中数的数量,转化为上一题的路径覆盖问题。 由于“依次”放球,所以构造出的一定是有向无环图。Code每次重新建边,不加优化的版本#include<vector>#include<c
2017-08-25 21:38:53
304
原创 【网络流24题】最小路径覆盖(二分图匹配)
传送门 最小路径覆盖 题意:从一张图中选择最少的边使图的端点集合v包含于所有选择边的端点集合。I think 将原图中点i拆为两个点xi,yi,原图中的边(i,j)转化为(xi,yj),题给的是有向无环图,所以对新图求二分图最大匹配,最终原图点数-新图最大匹配数即为答案。 未匹配即未选择任意一条边时,若将每个点视为自环,此时答案为原图点数,找到一个匹配,答案便减少1,
2017-08-25 21:05:35
393
原创 【网络流24题】太空飞行计划(最大权闭合图+最小割)
传送门 太空飞行计划 题意:m个实验分别依赖若干仪器,实验有收益,仪器需支出。被不同实验所依赖的相同仪器可在被买下后重复使用。求选择若干实验的最大获利(收益-支出)。I think 先说做法。实验和仪器分设为x,y集合的点。增设源汇点,源点向所有x集合点连边权为实验收益的边,y集合点向汇点连边权为仪器费用(>=0)的边,x集合点向y集合中实验对应仪器点连边,权值设为Inf。最终
2017-08-25 20:53:06
341
原创 【网络流24题】搭配飞行员(最大流+二分图匹配)
传送门 搭配飞行员 题意:二分图匹配裸题,不多说I think Dinic算法跑最大流解决||匈牙利算法Code代码一:Dinic#include<cstdio>#include<queue>#include<cstring>using namespace std;const int sm = 105,sn=sm*sm+200;const int Inf = 0x3f
2017-08-25 17:07:19
367
原创 【POJ 2762】Going from u to v or from u ? (Tarjan + 拓扑排序)
传送门 Going from u to v or from u ? 题意:给出一张图,判断任意两点x,y是否能够从x走到y**或**从y走到x。I think 先用tarjan求强连通分量缩点。然后拓扑排序检查是否存在1个以上的点入度为0,若是,则不满足条件。
2017-08-20 20:16:22
346
原创 【POJ 3687】Labeling Balls (拓扑排序)
传送门 Labeling Balls 题意:按照拓扑序输出序列,在多解时先保证1的序号最小,然后是2的序号最小,3的……I think 拓扑排序(反向建边+建立大根堆维护入度为 0的栈内元素)若正向建边+维护小根堆,每次取出最小的元素只能保证它满足当前最小 ,不一定是整体最小,但反向建边+维护大根堆可以通过每次取最大元素使得最小元素从整体上看尽可能置后 ,最后反向输出答案即可。
2017-08-20 20:05:37
324
原创 【POJ 1094】Sorting it all out (拓扑排序)
传送门 Sorting it all out 题意:判断题给条件能否得出唯一拓扑序且无环,若是则按拓扑序输出序列顺序,否则按照要求输出。I think 每输入一条边跑一次拓扑 ,任意拓扑过程中若存在环,则入栈元素数 < N,任意时刻若栈中超过一个元素,则暂不能确定顺序。 若可以确定顺序且无环,则添加完当前边确定唯一拓扑序 。Code#include<cstdio>using n
2017-08-20 20:01:32
280
原创 【BZOJ 1975】魔法猪学院(A*搜索+手打堆)
传送门 魔法猪学院I think 解法如题 主要觉得手打堆太优美 Code#include<cstdio>#include<queue>#define s second using namespace std;typedef pair<double,int> pdi;const int sm = 5e3+5;const int sn = 2e5+5;const do
2017-08-20 19:54:43
338
原创 【HDU 2433】Travel (BFS+最短路径树)
传送门 Travel 题意:一张n点m条边的图,边权均为1。对于每一条边,求删除它之后所有点对之间的最短路径和。I think 由于边权均为1,则可用BFS对每个点i求最短路并用Sum[i]记所有点到i的最短距离和。枚举删除边j时,若该边存在于点i的最短路径树中,对i进行屏蔽边j及其反向边的BFS再次求最短路。Code#include<cstdio>#include<cstr
2017-08-19 18:12:23
387
原创 【POJ 1724】Roads (限制最短路)
传送门 Roads 题意:给出一张n个节点的图,每条边有长度与花费两种权值。求在花费C内从点1到点n的最短路径。I think 有限制条件的最短路。Dijkstra将满足不超过花费的被更新点加入优先队列 ,在队列里按照长度排序。Code#include<cstdio>#include<queue>using namespace std;const int sn = 1e3+
2017-08-19 18:03:18
397
原创 【POJ 2449】Remmarguts's Date (A*搜索第k短路)
传送门 POJ 2449 题意:给出一张图,求两点S、T之间的第K短路。I think 学习A*搜索好文力荐:http://www.cppblog.com/mythit/archive/2009/04/19/80492.aspx A*搜索从S第k次搜到T,该路径的总长即答案。 注意,根据题目要求:第K短路径可以重复经过某点。若数据给出两个的S==T,则++K
2017-08-19 17:58:53
331
原创 【POJ 3259】Wormholes (SPFA 判断负环)
传送门 Wormholes 题意:给出一张图,判断是否存在负环。I think 方法:SPFA求单源最短路,若一个点入队超过N次,那么存在负环。Code#include<queue>#include<cstdio>#include<cstring>using namespace std;const int sm = 5250;const int sn = 505;co
2017-08-19 17:41:26
441
原创 【UVA 247】Calling Circles (floyd判断连通性+map)
传送门 Calling Circles 题意:如果两个人相互打电话(直接或间接),则说他们在同一个电话圈里。例如,a打给b,b打给c,c打给d,d打给a,则这4个人在同一个圈里;如果e打给f但f不打给e,则不能推出e和f在同一个电话圈里。输入n个人的m次电话,找出所有电话圈。人名只包含字母,不超过25个字符,且不重复。Code#include<map>#include<strin
2017-08-18 21:17:21
376
原创 【codeforces 295B】Greg and Graph ( floyd )
传送门 Greg and Graph 题意:给出n个点,两两之间均存在有向边。按顺序删除指定点及其所有连边,求每次删除点之前图中现存任意两点间距离和。I think 时光倒流吧…… 题目要求的操作相当于从删除列表中最后一个点开始添加点,每次跑Floyd将用当前点更新的最短路添加至答案。Code#include<cstdio>typedef long long LL;
2017-08-18 21:12:49
558
原创 【BZOJ 1604】Cow Neighborhoods(哈夫曼距离+Multiset)
传送门 BZOJ 1604 题面如下1604: [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 1035 Solved: 414Description了解奶牛们的人都知道,奶牛喜欢成群结队.观察约翰的N(1≤N≤100000)只奶牛,你会发现她们已经结成了
2017-08-18 21:02:48
587
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人