自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

@you!

天道酬勤

  • 博客(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 774

原创 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 768 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

原创 Unique Attack (zoj 2587 判定最小割是否唯一)

题意:判断最小割是否唯一。参考点击打开链接

2015-07-27 09:32:36 722 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 1233 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 1440 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

原创 Random Maze (hdu 4067 最小费用流 好题 贪心思想建图)

最小费用最大流,重在建图,好题!

2015-07-11 08:57:46 834

原创 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 1553

原创 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 1178

原创 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 1395

原创 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

数据结构课程设计通讯录管理系统

实验要求: 1、设计合适的数据结构存储朋友、分组信息,将以上文件内容导入其中(如果你觉得以上文件中的信息不合适,可以自行处理,删除某列、增加属性、规范化数据均可,如果你认为有必要,甚至去掉“编号”都可以)。 2、进行插入、删除、修改和查询操作。 考查点: 插入时注意编号的处理,可以不填吗?是否重复?是否可以自动编号?其他数据是否可以不填或乱填?如何控制? 删除时一要防止误操作,二要考虑分组信息的删除,如何处理? 修改时同样要考虑各数据项的性质。 查询操作包括按姓名查找、按拼音查找、按电话查找等。 3、为了便于查询,可以考虑采用索引表、散列,参考教材第一章绪论中的第一个例子:书目检索问题,也可以考虑将课堂所学的第9章查找、第10章排序加入到系统中。 4、综合查询 综合查询要求可以实现多条件查询,例如查询所有在北京的高中同学、在武汉的男性朋友等, 类似于筛选,越灵活越好,发挥你们的想象,自行设计。 5、最后把系统中的数据(包括主文件和索引表等)保存回相应的文件中。

2015-09-11

数值计算实验代码

包含了数值计算课程内的部分算法的源代码,包括Crout分解,Doolittle分解,Lagrange插值法,Newton插值法,Romberg算法,二分,复化梯形积分法,顺序高斯消元,列选主元高斯消元,全选主元高斯消元,数据拟合的最小二乘法,正定矩阵分解。

2015-09-11

空空如也

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

TA关注的人

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