上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 15 下一页
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3873题目大意:美国佬打算入侵火星,火星上有n个城市,有些城市可能受其他城市保护,如果i城市受j城市保护,那么你必须先攻占j城市才能再攻占i城市,问你攻占城市n的最短时间是多少。解题思路:开一个优先队列,每次将图中不受保护并的节点加入队列(注意不受保护的节点可能重复入队,所以要做个标记,只处理优先队列中第一个出来的重复节点),spfa()单源最短路进行操作,num[u]表示保护节点u的城市有多少个,当num[u]为0的时候可以把u加入队列。处理受保护的节点v时,disv=max(disu,dis[v 阅读全文
posted @ 2013-05-03 14:04 Mr. Ant 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3870题目大意:O(-1).解题思路:开始直接构图,套Dinic()模板,悲剧的TLE。再认真看看题,n为400,也就是有400*400个点,边大概是节点的4倍大小,明显最大流会TLE,对偶图构图很蛋疼。 对于点数边数很大的求最小割来说,可以构造它的对偶图,构造对偶图要求原图中s和d必须在图的外侧,对偶图G*中的每个点对应G中一个面,每一条从st到sd的最短路径都对应原图s到d的一个最小割。构造对偶图条件:1、原图是一个平面图2、图中的一个点为源点s,另外一个点为汇点t,且s和t都在图中... 阅读全文
posted @ 2013-05-03 13:34 Mr. Ant 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=1679题目大意:让你求最小生成树,并判断最小生成树是否唯一。解题思路:本题其实是想让你求次小生成树,如果次小生成树和最小生成树权值和相等,最小生成树则不唯一,否则唯一。解题步骤:1、先求最小生成树,求最小生成树过程中标记出现在最小生成树中的边以及fp[i][j],fp数组保存的是最小生成树上从i到j的最大权值。2、枚举所有未出现在最小生成树中的边map[i][j],找到tp=(map[i][j]-fp[i][j])差值最小的进行替换,为什么可以这样?因为加入map[i][j]到最小生成树中后必形成环,然后消去环中非map[i][j 阅读全文
posted @ 2013-05-03 12:21 Mr. Ant 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3849题目大意:给你一个关系网,问你那两个人是关键关系,即在整个关系网中起到链接作用,不可失去,这样对应到无向图中不就是要你求哪些边不在强连通分量中吗,即不在任何环中的边。解题思路: 利用tarjan算法的变形,以前用tarjan求的是有向图的强连通分量,这个是无向图,所以要进行相应的变形。1、 首先,要求割边则对应的图必须是连通图,如果不是连通图那么割边就是0.2、开始WA了几次,因为我开始这么想:一条边连接的两个顶点只要在不同的连通分量中(low[]值不同),那么这条边就是割边,好像想想有道理唉 阅读全文
posted @ 2013-04-29 19:16 Mr. Ant 阅读(626) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1199题目大意: 一段长度未知的线段,一种操作:a b c ,表示区间[a,b]要涂的颜色,c=w涂白色,c=b涂黑色,问你最长的白色区间段时多长。解题思路: 就快去南京邀请赛了,最近做题超没状态,CF rating一直掉,这么简单的线段树离散化居然搞了我一个晚上,纠结。 开始用线段树区间合并的方法做,WA到死,换个写法,又WA到死,没处理好边界问题。 这题用普通的离散化没用,藐视这种离散化第一次遇见,以前的离散化要么就是点化点,线段化点,这题不一样,是点化线段,一不小... 阅读全文
posted @ 2013-04-27 23:27 Mr. Ant 阅读(432) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4291题目大意:g(0) = 0,g(1) = 1,g(n) = 3g(n - 1) + g(n - 2),给你一个n(0<=n<=10^18),求g(g(g(n))) mod (109+ 7)。解题思路:如果直接利用n做三次矩阵快速幂求解的话,无奈的WA了。因为三次快速幂对1000000007取模的话,超精度了。所以必须本地处理寻找每层的循环节,最外层最1000000007取模,则找到最外层的循环节是222222224,次外层对222222224取模,找到次外层循环节是183120。接 阅读全文
posted @ 2013-04-25 19:50 Mr. Ant 阅读(732) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4288题目大意:有n个操作和一个集合(初始为空),并且集合内元素满足按顺序排列。现有三种操作:add x : 将元素x加入集合中。del x: 将集合中的x元素删除。sum: 统计集合中元素下标满足i%5==3的总和。解题思路: 以为在线段树方面小有火候,现在发现自己在线段树方面还没起火,处于冒烟阶段。 这题让我蛋蛋又碎了,WA了一个晚上,各种调试,最后发现是数组必须开成节点4倍大小,我只开了两倍大小,导致了一个晚上的悲剧(why?个人认为两倍足够了,可以证明的)。 可以... 阅读全文
posted @ 2013-04-25 18:57 Mr. Ant 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4267题目大意:给你一列数区间范围为[1,n],区间每个数有一个对应值a[i]。接下来有Q个操作操作1:"1 a b k c", 区间[a,b]内满足条件(i-a)%k==0的数值a[i]加c。操作2:“2 a” ,输出a[i]的值。解题思路:这题蛋都碎成渣渣了,RE几次,MLE无数次。1、按线段树建树情况可推出,即使成为完全平衡树开也只有2*n-1个节点,开2*n的大小完全没问题啊,但它就是RE,不解。2、这题我的初始化开始没有建build()函数,而是直接对flag[][]初 阅读全文
posted @ 2013-04-21 23:02 Mr. Ant 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2890题目大意:给你一个含n个数的序列,再给你一个k,让你求最少重复k次的最长子序列(子序列不能重叠)。解题思路:先吐槽一下,题意不明,蛋疼许久。我可以这么理解 : 1、保证子序列重复次数cnt大于k的前提下,len为一个子序列长度,然后最长子序列最长,即cnt*len最大。 2、保证子序列重复次数cnt大于k的前提下,只需让子序列长度len最长即可。我在理解1中挣扎了许久才发现我题目都理解错了,题目意思是理解2,擦擦擦。 这题X值很大,先离散化处理一下。 以前写过一... 阅读全文
posted @ 2013-04-21 14:57 Mr. Ant 阅读(793) 评论(0) 推荐(0) 编辑
摘要: 今天没事就去刷以前hdu做过但是没过的题,前面的题现在还是能过的,做到这题就卡了,传说中的划分树,只闻其名未见其身。然后搜索了一下划分树的资料,擦擦擦,这不就是同快排的原理+线段树的操作,两者一融合进化成了划分树么。前面两个都会,学习起来倍感轻松。 建树过程: 先对区间[1,n]内所有元素进行排序, 阅读全文
posted @ 2013-04-20 22:07 Mr. Ant 阅读(983) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 15 下一页