- 博客(35)
- 资源 (2)
- 收藏
- 关注
原创 XYZ and Drops (hdu 5336 bfs)
题意:n个大水滴在r*c的平面上,(x,y)处有一水滴分裂,分成四个小水滴向四个方向前进,其他n个大水滴的初始大小为1~4,若大水滴被小水滴撞到大水滴大小增加一,当大水滴大小超过四时会分裂,同样向四个方向,这样连锁反应,问最后T时刻n个水滴的状态。思路:bfs,比赛写的时候一个小bug没看出来,思路上的一点漏洞,遗憾。
2015-07-31 10:18:02 923
原创 URAL 1715. Another Ball Killer (大模拟)
题意:n*m的格子上有至多5种颜色的格子,同一颜色的 k (k>=2)个格子连成一块可以相消,得分k*(k-1),每次规定一主颜色,每次先消最大的块,若存在多个相同大小的块,先消靠底部的,靠左边的;先消与主颜色不同的块,再消主颜色的块。每次消完一个块整体都向下挪,向左挪,如题图。输出每种主颜色下的得分。思路:蛋疼大模拟,敲了两个小时,脑袋都要炸了,幸好1A哭感激涕零,直接上代码,自己的代码写完就看不懂了=-=
2015-07-29 19:36:00 775
原创 Lift Hopping (Uva 10801 最短路)
题意:n个电梯,100层楼,告诉每个电梯的速度和每个电梯会停的楼层数,起点在0层,终点是第k层,另外每次换乘需要等待60秒,问从0到k的最短时间是多少。思路:这题就是读入比较蛋疼,然后根据输入建完图后跑一下Dijkstra。在更新时加入60秒。
2015-07-28 21:28:46 484
原创 It's not a Bug, It's a Feature! (poj 1482 最短路SPFA+隐式图+位运算)
这个题拿到手并不会做,没有好的思路,然后就看了网上的题解,第一次碰到不建图也能SPFA的,又学习了。另外这一题的位运算处理也很巧妙,这是我不熟悉的,先放在这里,以后多来看几遍。参考这两篇博客,写的很好:http://www.cnblogs.com/scau20110726/archive/2012/12/16/2820739.htmlhttp://www.cnblogs.com/staginner/archive/2011/10/25/2223489.html
2015-07-28 08:45:20 998
原创 Arctic Network (poj 2349 最小生成树)
题意:有P个前哨,现在想把他们连成一个整体(也就是最小生成树),有两种方式可以连接(1)卫星连接,只要两个前哨中有一个有卫星,他们就可以通信(2)发射无线电,但是有一定的花费,与距离成正比。求最小的花费(即求无线电通信的所有距离中的最大值)思路:先用Kruskal求出最小生成树,较长的边使用卫星来通信,那么答案就是ans[P-1-S]。喔,这代码在poj上要用C++交才能过,不知道怎么回事。。。
2015-07-27 16:52:22 769 2
原创 Connect the Campus (Uva 10397 Prim || Kruskal + 并查集)
题意:给出n个点的坐标,要把n个点连通,使得总距离最小,但是有m对点已经连接,输入m,和m组a和b,表示a和b两点已经连接。思路:两种做法,(1)用prim算法时,输入a,b,令mp[a][b]=0,然后进行一遍prim(2)Kruskal算法+并查集
2015-07-27 15:37:08 733 1
原创 Twelves Monkeys (multiset解法 141 - ZOJ Monthly, July 2015 - H)
题意:n个时刻点,m次时光穿梭,告诉每次穿梭的起点和终点,q次询问,每次询问t时刻t之前有多少时刻点是可以通过两种不同的路径到达的。思路:对于询问的时刻t可以顺时间向后推移到t+1,t+2,t+3.。。。。。那么t时刻及以后的时刻的穿梭都是可能的,把他们能穿梭到的时刻插入multiset,如果multiset里有至少两个元素的值大于等于t,则该时刻t存在解。另外注意的是,询问的时刻点靠前的都可以到达靠后的,所以我们得从后往前求解。
2015-07-27 08:29:51 1235 4
原创 Being a Hero (hdu 3251 最小割 好题)
题意:n个点m条边的有向图,每条边有破坏话花费,现在国王在城市1,要分配给英雄一些城市,分配的原则是:只能在规定的f个城市中选若干个,这f个城市每个都有一个获利,被选择的城市要与国王所在的城市1隔离,所以选定后要花费一些费用来破坏边。问最后获利的最大值是多少,并且输出要破坏的边的序号。思路:这个题拿到手之后很久没有思路,因为图上既有获利又有花费,不知道怎么建图,无奈只好求助网上神牛。添加汇点T,原图上的单向边依次建边,容量为花费,允许选择的f个点向汇点T连边,容量为点上权值。跑一遍最小割得到花费值cost
2015-07-26 16:51:40 1372
原创 The Exchange of Items (141 - ZOJ Monthly, July 2015 - E 最小费用最大流)
题意:现在有N个物品,进行物物交换,告诉每个物品 i 的初始时的个数A[i]和最终想得到的个数B[i],M种交换方式,问为了达到目的最少的交换次数是多少。思路:最近在做最小割,看到什么都想往最小割上套敲打发现不行,恩,好像费用流可以搞。添加源点s和汇点t,如果A[i]>B[i],也就是物品i的初始个数大于最终个数,那么我们从源点向i连边,容量为A[i]-B[i],费用为0,同样如果B[i]>A[i],i向汇点连边,容量为B[i]-A[i],费用为0,另外M种交换方式建双向边,容量为INF(因为理论上可以进
2015-07-26 15:23:47 1442 6
原创 Key Vertex (hdu 3313 SPFA+DFS 求起点到终点路径上的割点)
题意:n个点m条边的有向图,问存在多少个点使得去掉这个点及相连的边后起点和终点不再联通。思路:很容易想到Tarjan算法求割点,但是稍微一想就会知道不对,因为Tarjan算法求的是整个图的割点,而这里题目只要求能使起点和终点不连通的点。然后我们先用SPFA求出一条最短路径,那么要求的“割点”一定都在这条路径上,仔细想想就会知道。求出最短路径后从起点dfs,直到找到距离start最远的且在最短路径上的点v,那么v就是一个割点,这时更新start,令start=v,重复上面的dfs直到终点。为什么这么做呢?你
2015-07-26 10:29:51 1050
原创 Thieves (hdu 3491 拆点 最小割)
题意:n个点m条边的无向图,告诉起点S和终点H,现在知道起点有小偷要去H偷东西,为了抓获小偷告诉每个点要安排的警察数量,现在问在哪些点安排警察可以使警察数量最少,求出最小数量。思路: 关键要理解最小割的建图思想,因为点上有权值,所以拆点,i->i+n建边,容量为点上权值,这样就能保证这个点可能被选择,然后点与点之间的边建图时容量为INF,保证它不被割到(因为我们要选的只是点上的权值),然后起点S->S+n,终点H->H+n建边容量为INF,起点和终点不能方放警察。
2015-07-25 10:45:48 781
原创 2015多校第一场 1005 hdu 5292 Pocket Cube 转魔方
题目链接:点击打开链接题意:给出一个二阶魔方的状态,判断这个魔方是否能够还原。思路:首先没玩过魔方,所以没做出来,看了好几个大神的博客才懂,主要看了这位博主的文章点击打开链接,也是问了博主才明白,直接引用他的解释:“魔方应该以“块”为单位,而不是小面,二阶魔方有8个块24个小面。然后二阶魔方可以交换任意两个块而不影响其他块,所以块的位置不用考虑。魔方拥有完美的对称性,每个块有3个朝向,你无法单独翻转一个块的朝向。如果需要顺时针反转一个块的朝向,必定会导致另外一个块逆时针翻转。又或者,你可以同时顺时针翻转
2015-07-24 13:51:55 824
原创 Delicious Apples (hdu 5303 贪心+枚举)
题意:在一个圆上有n个苹果树,告诉苹果树的位置和每棵树上的苹果个数,还有一个容量为K的篮子,用篮子去摘苹果,起点在位置0,反复去摘直到把所有的苹果都摘回到0,问走的最短距离为多少。思路:首先将圆一分为二,在圆形两侧能拿满的话肯定就是只走半边再回去,这样比走整圈划算,另外还要想到最后两边都不足K个了,这个时候最多需要走一个整圈,我们不知道这个整圈拿了哪几个苹果,那么就枚举K个。比赛时只是想到了贪心,最后那一部分没有枚举,另外这里的苹果进行了离散化,因为苹果总数只有1e5,大大简化了代码,自己当时写的太冗余=
2015-07-24 10:47:21 2735
原创 TOYS (poj 2381 叉积+二分)
题意:给m个点的坐标,落在n+1个区域中,问各个区域有多少个点。思路:利用叉积去判断点在线段的哪一侧,二分解决。今天开始慢慢接触计算几何了,然而网络流还没玩顺溜=-=
2015-07-22 16:52:36 830
原创 Tricks Device (hdu 5294 最短路+最大流)
题意:n个点m条无向边,假设从起点0到终点n-1的最短路距离为dist,求最少删除多少条边使得图中不再存在最短路,最多删除多少条边使得图中仍然存在最短路。思路:先用spfa求一次最短路,开一个road数组,road[i]表示从起点走到i点最短路径所经过的最少边数,然后第二问就是m-road[n-1];再根据最短路的dist数组判断哪些边是最短路上的,用它们重新构图,跑一遍网络流求最小割。比赛的时候没有在最短路上建边,直接用的原图,果断TLE,又坑了队友=-=
2015-07-21 19:07:32 779 1
原创 Test for Job (poj 3249 记忆化搜索)
题意:n个点m条边的有向图,每个点有权值,现在从入度为零的点出发到出度为零的点,求路径上的权值之和最大为多少。思路:点比较多,肯定不能用矩阵存图,要用到邻接表,建图时统计入度为零的点,从该点出发dfs,找出从这一点出发能得到的最大值。
2015-07-20 20:25:33 902
原创 The Great Wall I (zoj 3475 最小割最大流)
题意:n*m的地图,现在上面有X国家和一些联盟国要共同抵御E国,X国要建长城,有一些国家联盟进来并出一定费用,每条边都有一个建造费用,告诉每个国家的坐标和参加联盟的国家出的费用,问X国怎样建可以使费用最小,输出最小费用。思路:这一类题目在图中把点分成两部分可以用最小割求解,图中的一条边就表示以改变为公共边的两个点之间有弧,添加源点和汇点,枚举哪些国家在长城内,将源点与这些国家连边,E和边界与汇点连边。这样求一遍最大流,选择了某条边为割边就表示方格中两个格子间的那条围墙被选择了。
2015-07-12 19:44:52 999
原创 Intelligence System (hdu 3072 强联通缩点+贪心)
题意:n个人m个单向关系,现在要通知所有的人,两个人之间联系有费用,求最小费用,处于同一个联通块的两个人之间通讯不需要花费。思路:先建图使用Tarjan算法缩点,然后根据题意我们应该求缩点后新图的最小树形图,但是这里没必要,为什么?仔细想一想,首先题意说总是有解,所以最小树形图一定存在,那么我们对于每一个点在它的所有入边中选择一个花费最小的入边(入度为零的点除外)那么答案就是每个点的最小花费之和。这样贪心是可行的,因为在这个过程中不会出现环,很容易想到,如果出现了环那么这个环就又是一个联通块了,可是我们
2015-07-12 13:33:37 694
原创 Summer Holiday (hdu 1827 强联通缩点)
题意不多说,先Tarjan缩点,然后求出每个联通块的入度,入度为0说明至少要给这个联通块中的某一个人打电话,费用取这个联通块中花费最小的那一个。
2015-07-12 10:16:40 674
原创 Pleasant sheep and big big wolf (hdu 3046 最小割)
题意:一个矩阵,1表示羊,2表示狼,然后让把羊和狼隔开,问需要最小的栅栏数。思路:要把羊和狼隔开,就是去最小割把他们分开,每个格子和周围四个格子建流量为1的边,s向狼建INF的边,羊向t建INF的边。
2015-07-12 09:25:37 961
原创 River Problem (hdu 3947 流量等式建图 难题 最小费用最大流)
题意:治理河水污染问题,有n个点,n-1条有向边表示河流,每条河流都会汇聚到1,现在告诉每条河流的污染值w,另外有m种药水,每种药水可以治理起点为u终点为v的河水段,可以使该河段的污染值减少1,该种药水最多可以用L次,花费为c,问把污染治理完最小需要的花费是多少。
2015-07-11 23:24:08 1329
原创 Mining Station on the Sea (hdu 2448 SPFA+KM)
题意:有m个海上基站,n个港湾,现在有n只船在n个基站里,基站与基站之间有通讯的船才可以走这条路,告诉基站之间的距离,基站与港湾的距离,现在船要回到港湾,一个港湾只能停靠一只船,而且一旦进去就不能出来了,求所有船都回到港湾要走的最短距离之和。思路:先用最短路求出每个船的起始点到每个港湾的最短距离,并且连边,然后求二分图的最小权匹配,用KM算法。费用流也可以做,但我姿势不够优美超时了。。。
2015-07-10 16:53:51 846
原创 Buy or Build (poj 2784 最小生成树)
题意:n个城市,告诉每个城市的坐标,还有q个联通块,现在要把这n个城市连起来,可以购买联通块(每个有一定的费用),或者新建一条边(费用为点之间的距离的平方),问最小费用是多少。思路:q很小,二进制枚举选哪些块,每次kruskal一遍,求最小值。
2015-07-10 10:53:33 1554
原创 Easy billiards (zoj 3761 并查集+DFS)
题意:一个平面上有n个点的坐标,现在用一个球a去撞另外一个球b,b被撞到无穷远,a停在b的位置,问怎样撞可以使最后平面上的球最少。思路:先用并查集将在同一行或者同一列上的球连成一个集合,用dfs搜索输出。
2015-07-08 22:43:44 808
原创 Traveler Nobita (zoj 3456 最小生成树)
题意:n个点m条路,开始没有路,每一年修一条路,修完后一个人从0点周游这n个点,问能否在一年内游玩这n个点,能的话输出最少的天数,输入会告诉每个点他待的时间和每条路走的时间,他最多只能走n-1条路。思路:一边加边一边Kruskal,每次Kruskal把没有用的边删掉,另外前n-2年肯定不能完成,还要注意闰年。
2015-07-08 11:01:20 825
原创 Dearboy's Puzzle (poj 2308 搜索 dfs+bfs)
题意:连连看游戏,给定一个局面判断最后能不能消完。思路:用dfs来确定消去哪一个格子(x,y),在dfs中进行bfs,看(x,y)周围有多少格子可以和(x,y)相消,找到之后再用dfs枚举与哪一个相消或者当前(x,y)不消。注意一个剪枝,存在下面这种情况的肯定不符合题意:************AB******BA************另外,注意题意的消去方法,连线最多只转两个弯。
2015-07-06 20:42:13 1754 1
原创 Proving Equivalences (hdu 2767 强联通缩点)
题意:n个点m条边,问最少添加多少条边使得整个图联通。思路:先Tarjan求强联通分量,缩点,再求缩点后的点的入度和出度,入读为0的点的个数为a,出度为0的点的个数为b,ans=max(a,b)
2015-07-06 16:43:41 647
原创 Assignment (HDU 2853 最大权匹配KM)
题意:n个公司m个任务,每个公司只接受一个任务,每个任务只被一个公司接受,每个公司i接受任务j的做事效率为g[i][j],现在已经分配好了,问怎样改变任务分配可以让效率最大,求出要改动的公司数目和增加的效率。思路:与hdu3315相似,hdu 3315;若点数为N,则把每条边的权值扩大x倍(x>N),若是原有匹配,则再把权值加1。最后KM算法求出ans,则最大权值之和=ans/x,没有被改动的=ans%x。
2015-07-06 14:22:57 758
原创 My Brute (hdu 3315 二分图最大权匹配KM算法)
题意:starvae和xingxing各有n个英雄,starvae的每个英雄有血量Hi和攻击力Ai,xingxing的每个英雄有血量Pi和攻击力Bi,每轮比赛两人各出一个英雄i和j进行对抗,每次starvae的英雄i先攻击,则 j 会掉Ai的血,然后由j攻击,i掉Bj的血,谁的血先小于等于零就输了,若starvae赢了得v[i]的分,输了失v[i]的分,问最后starvae能得到的分的最大值是多少。思路:这种题型是给出现有的匹配,求匹配的最大权值和改动的边数。若点数为N,则把每条边的权值扩大x倍(x>N)
2015-07-06 13:07:06 1180
原创 Transportation (hdu 3667 最小费用最大流+拆边)
题意:给出一个有向图n个点m条有向边,把k单位的货物从1运到n,每条边有一个容量上限c和花费系数a,每一单位的货物从该边过要花费a,问把这k货物运到n的最小花费是多少。思路:费用与流量平方成正比的最小流。容量c为整数,并且每条弧还有一个费用系数a,表示该弧流量为x时费用为ax^2,如何求最小费用最大流?用拆边法,这题边的容量c最大只有5,所以可以拆边,一条边拆成c条边,每条容量1,对应相应的代价为a * (i^2 - (i - 1)^2),最后来一遍费用流即可。
2015-07-05 19:26:52 658
原创 The Buses (poj 1167 搜索)
题意:给出n个时刻,这n个时刻有车到站,问最少要多少条路线可以满足输入。每条路线在0~59之间至少要停两站,到站之间的时间间隔是相等的。
2015-07-05 16:59:31 1401
原创 Matrix (hdu 2686 最大费用最大流)
题意:给出一个n*n的矩阵,每个点上都有一个值,现在从左上角沿着一条路径走到右下脚(只能向右或者向下),然后再从右下角回到左上角(只能向左或者向上),在这个过程中每个点只允许走一次,问路径上的权值之和最大为多少?思路:这里用到费用流求解,首先添加一个超级源点s=0和超级汇点t=n*n+1,然后对每个点拆点, i 向 i` 连边,容量为1,花费为该点的权值mp[i][j],然后s与 1` 连边,容量为2,花费为0,n*n向t连边,容量为2,花费为0,最后矩阵中的点之间连边,容量为1,花费为0。最后答案为co
2015-07-05 14:14:12 635
原创 Cyclic Tour (hdu 1853 二分图最小权问题)
题意:给出n个城市和m条路,有向图,现在Tom想游遍这n个城市,满足路线是若干个回路,要求每个城市要在一个回路中,每条边有一定的旅游花费,问Tom游遍所有城市的最小旅游花费。思路:二分图最小权问题,把边权取反,用KM算法。
2015-07-05 09:23:35 1014
数据结构课程设计通讯录管理系统
2015-09-11
数值计算实验代码
2015-09-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人