- 博客(241)
- 资源 (12)
- 收藏
- 关注
原创 [POJ 2184]Cow Exhibition[DP][01背包]
题目链接:[POJ 2184]Cow Exhibition[DP][01背包]题意分析:有n头牛,每头牛的智商为si,情商为fi,现在要举办一个展览,需要选择一些牛出来,满足这些牛的情商只和不小于0,智商之和不小于0,并且需要这两个之和的和最大化,问最大是多少?不存在则输出0。解题思路:将牛的智商作为背包容量,情商作为价值,那么最终答案就是:dp[i] + i。本题智商可为负,为了
2016-01-15 19:42:55 457
原创 [POJ 3666]Making the Grade[DP]
题目链接:[POJ 3666]Making the Grade[DP] 题意分析: 含有n个数的序列,允许对序列中的任意一个数加或者减,问:最少更改多少值,使得原序列变成单调递增或者单调递减? 解题思路: 设状态dp[i][j]为到第i个数,以b[j]为结尾更改的最少价值。那么有转移方程dp[i][j]=min(dp[i−1][k])+|a[i]−b[j]|(k=0∼j)dp[i][j] =
2016-01-15 19:26:45 414
原创 [POJ 3046]Ant Counting[dp][优化]
题目链接:[POJ 3046]Ant Counting[dp][优化] 题意分析: 蚂蚁有T个家族,每个家族里的蚂蚁没有区别,总共有A只蚂蚁,现在问:给出每个家族的蚂蚁数量,最多能组合成多少个不同的集合个数为S~B的集合? 就是给你T个集合,每个集合num[i]num[i]个数,这些数排列组合能有多少个,个数为S~B的集合。 解题思路: 本题不能有重复情况,即{1,2}{2,1}是相同的,
2016-01-14 17:46:01 620
原创 [POJ 3280]Cheapest Palindrome[DP]
题目链接:[POJ 3280]Cheapest Palindrome[DP]题意分析:有一个长度为m的字符串,全都为小写字母,给出串中每个字母删除和插入的代价,问:要构成回文串,最少需要多少代价?解题思路:设dp[i][j]为字符串s[i ~ j]变成回文串需要的最小代价。那么有转移方程:dp[i][j] = dp[i + 1][j - 1] (s[i] == s[j]);
2016-01-14 12:24:23 314
原创 [POJ 3616]Milking Time[DP]
题目链接:[POJ 3616]Milking Time[DP]题意分析:给出M个区间,每个区间有对应的产奶量efficiency[i],奶牛每次挤完奶要休息R分钟,问:最大的挤奶量是多少?(农夫在起始分钟的开始处开始挤奶,在结束分钟的开始处结束挤奶)解题思路:设dp[i]为选择第i个区间可以得到的最大产奶量。dp[i] = max(dp[0 ~ i]) + efficiency[i
2016-01-14 11:27:31 378
原创 [POJ 2385]Apple Catching[DP]
题目链接:[POJ 2385]Apple Catching[DP]题意分析:每分钟树1和树2两棵树之中都会有一棵树掉落苹果,现在给出分钟数N和W次转换树次数,其中,1代表当前分钟苹果在树1掉落,2代表苹果在树2掉落,转换树不耗费时间,问:最多能接多少个苹果?解题思路:我们设状态,dp[i][j]代表到第i分钟,转换j次,最多可以拿到多少苹果。那么就有dp[i][j] = max(d
2016-01-13 17:45:02 843 1
原创 [POJ 3181]Dollar Dayz[DP][高精度]
题目链接:[POJ 3181]Dollar Dayz[DP]题意分析:给出无穷多个1~K的价值的货币,问:能有多少种方式组合成N。解题思路:完全背包。dp[i] = dp[i] + dp[i - j]。j为货币价值。第i个价值可以有第i - j的价值加上价值为j的货币组成。由于数量很大,需要高精度。这里我们可以使用ldp和hdp分别代表数字的低位和高位,整个数字长度就可以表示到
2016-01-13 12:51:11 463
原创 [HDU 2563]统计问题[递推]
题目链接:[HDU 2563]统计问题[递推]题意分析:走过的地面马上就会坍陷无法再走,初始时,有一个方向无法行走,这里设为下方。问,走n步,一共有多少种走法?解题思路:无法往回走,如果上一步是向上,那么这步就可以走上,左,右;如果上一步是向左或者向右,那么这一步就可以向上或者向着上一步相反的方向。总共就这两种情况。我们设向上走为z[i],左右走为h[i],总共走法为f[i]。
2016-01-13 12:40:00 387
原创 [POJ 3295]Tautology[构造][DFS]
题目链接:[POJ 3295]Tautology[构造][DFS]题意分析:给出一个表达式,问:这个表达式是否是永真的?是的话,输出“tautology”,否则“not”。其中变量最多有5个,代表字母为:p q r s t大写字母:K-与,A-或,N-否,C-蕴含,E-相等解题思路:变量最多五个,那么就把所有情况都枚举一遍。解析表达式,使用dfs进行扫描,直到扫描到小写字母
2016-01-12 09:59:33 441
原创 [CodeForces 615B]Longtail Hedgehog[DP]
题目链接:[CodeForces 615B]Longtail Hedgehog[DP]题意分析:Santa要画一只刺猬,现在有n个点,m条边。刺猬的定义是有尾巴和刺。尾巴:从尾巴的起始端到末尾,所有的标号都严格递增,eg.1->2->4这样子。然后画刺,刺的画法是在画完尾巴之后,将所有的边都染色,此时选定一个结点为尾巴末尾,这个末尾上的所有边,都是刺。刺猬的优美度 = 尾巴长度(尾巴上点的
2016-01-09 11:26:11 754
原创 [HDU 4263]Red/Blue Spanning Tree[kruskal]
题目链接:[HDU 4263]Red/Blue Spanning Tree[kruskal]题意分析:n个点,m条边,每条边染色为红色或者蓝色,问:是否存在含有k条蓝色边的生成树?是,输出1,否,0。解题思路:kruskal算法在生成最小生成树时使用了并查集思想,这题只要求生成一棵生成树,不用想排序之类的事。优先蓝边做一次生成树,此时使用的蓝边个数为mx;接着优先红边,接着蓝边做一
2016-01-03 23:13:46 598
原创 [HDU 3848]CC On The Tree[dfs]
题目链接:[HDU 3848]CC On The Tree[dfs]题意分析:求树上任意两个叶子结点之间距离的最小值。解题思路:考虑从树上任意一个非叶子结点开始dfs遍历,求出距离该点最短和次短的两个叶子节点,更新答案:ans = min(ans, 最短 + 次短)。如果每一个都这样求很容易就超时了,可以发现,之前的结果可以接着用,比如新结点遍历到了之前已经遍历过的结点,那么只要返
2016-01-03 11:12:44 415
原创 [CodeForces 490C]Hacking Cypher[math]
题目链接:[CodeForces 490C]Hacking Cypher[math]题意分析:将一个长度解题思路:设当前数为num,考虑从左往右,每新增一个数字cur,当前数为num = num * 10 + cur。每一次取模即可判断是否能被a整除,同理,从右往左,每一次新的数就是num = 10^x * cur + num。然后标记下可行位置,最后判断一遍即可。个人感受:
2016-01-01 09:54:30 604
原创 怎么把自己的代码传到github上
写在前面: 弄了两小时终于搞定了,把经验整理下,方便我以后上传代码XD。本篇主要是描述在windows下如何进行代码上传的。一、注册账号,新建仓库 首先上www.github.com注册一个账号,然后点击右上角个人头像,点击”profile”,进入界面后。点击”Repositories”进入,仓库界面,点击右方的”New”即可新建一个新仓库了。二、下载git 地址:https://git-sc
2015-12-31 23:20:48 10461
转载 鲁迅:《在酒楼上》
我从北地向东南旅行,绕道访了我的家乡,就到S城。这城离我的故乡不过三十里,坐了小船,小半天可到,我曾在这里的学校里当过一年的教员。深冬雪后,风景凄清,懒散和怀旧的心绪联结起来,我竟暂寓在S城的洛思旅馆里了;这旅馆是先前所没有的。城圈本不大,寻访了几个以为可以会见的旧同事,一个也不在,早不知散到那里去了,经过学校的门口,也改换了名称和模样,于我很生疏。不到两个时辰,我的意兴早已索然,颇悔此来为多事了
2015-12-31 12:04:41 695
原创 [CodeForces 467C]George and Job[DP]
题目链接:[CodeForces 467C]George and Job[DP]题意分析:求一个含有n个数的序列,从其中选定k个长度为m的不想交的区间,最大和为多少?(k * m 解题思路:设状态为dp[i][j]:前i个数,取j个区间能达到的最大值。那么就有转移方程:dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - 1] + sum[i]
2015-12-31 11:28:04 588
原创 [CodeForces 605B]Lazy Student[贪心][构造]
题目链接: [CodeForces 605B]Lazy Student[贪心][构造]题意分析:给出边的权值和该边是否在最小生成树内,问:能否给出一个合理的原图?1为在最小生成树内,0则反之;n个点,m条边,保证有n-1条边在最小生成树内,m - n + 1条边在树外。解题思路:直接1->2->3->4->....只要边是在最小生成树上,就这么建边,问题在于:不在树上的边怎么建
2015-12-11 00:54:23 765
原创 [UVA 10615]Rooks[二分图匹配]
题目链接:[UVA 10615]Rooks[二分图匹配]题意分析:给图中的每个'*'都涂上颜色,使得任意一行任意一列颜色都不重复,输出需要的最少颜色数,并输出解决方案。解题思路:很容易能看出,最长连续的*长度就是最少需要的颜色数了,虽然我并不知道为什么。剩下的就是怎么输出匹配方案数了,我们将每个*点的行和列连一条边构成二分图,然而这样还有个bug,就是会出现失匹配的情况,所
2015-12-06 23:50:44 1043
原创 [UVA 10441]Catenyms[欧拉路]
题目链接:[UVA 10441]Catenyms[欧拉路]题意分析:给出一组单词,问能否将他们首尾相连串成一个串,每个单词都得出现一次。解题思路:将单词首字母作为边的起始,尾字母作为边终点,建立有向图。原题就变成了判断图中是否存在欧拉通路或者欧拉回路,最后判一遍联通性即可。欧拉图图相关姿势推荐博文:13、弗罗莱(Fleury)算法,求欧拉(Euler)通路/回路本题用到姿势
2015-12-06 14:10:32 574
原创 [UVA 10459]The Tree Root[树上最长距离]
题目链接:[UVA 10459]The Tree Root[树上最长距离]题意分析:以树上每个点作为根,算出每个点作为根的最大深度,最大深度最小的点称为“好点”,深度最大的点称为“坏点”,输出所有的好点和所有的坏点。解题思路:这题只需要找到树上最远的两个端点,从这两个端点dfs更新每个点到这两个端点之一的最大距离即可。用到的结论是:最长距离,一定是该点和这两个端点其中之一之间的
2015-12-05 21:09:11 643
原创 [hihoCoder 1032]最长回文子串[Manacher]
题目链接:[hihoCoder 1032]最长回文子串[Manacher]题意分析:求给定字符串中的最长回文串的长度是多少。解题思路:暴力:枚举每个区间,判断回文串,复杂度O(n3)枚举中心:分奇偶性讨论,从中心往两边扫,复杂度O(n2)Manacher:复杂度O(n)本题最坏情况下,1e6,所以只能使用Manacher了。推荐个博文:Manacher算法总结个
2015-11-29 17:18:59 441
原创 [CodeForces 540B]School Marks[贪心]
题目链接:[CodeForces 540B]School Marks[贪心]题意分析:给出序列中的几个数,求补全这个序列,使得权值和不大于x,中位数不小于y。解题思路:中位数左边可以放置的位置都放1,右边能放置的位置都放y。如果这样都无法满足权值和不大于x,肯定就不行了,另外别忘了判断中位数是否不小于y。个人感受:炸了!一道题卡了半天,还是个历史遗留题= =。要么过了那个c
2015-11-28 21:36:19 591
原创 [HDU 2312]Cliff Climbing[BFS]
题目链接:[HDU 2312]Cliff Climbing[BFS]题意分析:杰克可以从为'S'的点用任意一只脚向上爬,规定左脚爬完得用右脚,问:到达'T'的点需要的最少时间为多少?解题思路:从'S‘的点开始,向左右两边进行搜索。dis[i][j][2]代表,某只脚到达该点需要的最少时间,转移为dis[i][j][1 - sta] = min(dis[i][j][1 - sta],
2015-11-21 10:53:24 481
原创 [CodeForces 593D]Happy Tree Party[LCA][路径压缩]
题目链接:[CodeForces 593D]Happy Tree Party[LCA][路径压缩]题意分析:给出两个操作,1和2。1代表查询结点a到结点b之间最短路径,将路径上的权值对y进行向下求整,输出结果。2更改某个结点的权值解题思路:y最大1e18,对于除数为大于1的数字来说,最多除60次就可以让y变成0了。所以用lca不断除,当结果是0时就返回结果。不过还要考虑
2015-11-21 10:44:03 887
原创 [CodeForces 510C]Fox And Names[字典序][拓扑排序]
题目链接:[CodeForces 510C]Fox And Names[字典序][拓扑排序]题意分析:给出n个人的名字字典序排名,问:能否根据这个给出一个满足要求的字典序顺序,如果不能,输出"Impossible"解题思路:直接根据字典序的比较方法来做题:例如:上方字符串:ssssscbc下方字符串:sssssad相邻两个字符串,从左到右进行比较,直到两个不相同的字
2015-11-18 13:26:57 904
原创 [HDU 1811]Rank of Tetris[拓扑排序][并查集]
题目链接:[HDU 1811]Rank of Tetris[拓扑排序][并查集]题意分析:给出的关系中是否存在矛盾,是否无法确定关系?两者都有,输出"矛盾"即可。解题思路:排名大小关系,很容易想到拓扑排序。问题在于,什么情况下是不确定的?当处理队列中有多个点时,就是不能确定的情况,因为后继操作可以选择多个不同的开始。需要注意的是本题存在等于的情况,这时需要将相等的两者合并,合并之后
2015-11-17 16:33:12 425
原创 [CodeForces598C]Nearest vectors[精度]
题目链接:[CodeForces598C]Nearest vectors[精度]题意分析:给出多个有向向量,问这些向量中,哪两个构成的无定向角(即:构成的两个角中,小的那个角)最小。解题思路:用atan2函数把所有向量与x轴正半轴的夹角求出,排序,俩俩间比较差值即可。注意要使用long double。个人感受:精度问题太恶心了! X 3具体代码如下:#inclu
2015-11-15 14:00:31 1025
原创 [POJ 1330]Nearest Common Ancestors[LCA](O(dep[u] + dep[v]))
题目链接:[POJ 1330]Nearest Common Ancestors[LCA](O(dep[u] + dep[v]))题意分析:求两个结点的最近公共祖先。解题思路:先找出根结点,然后从根结点开始,运用深搜给每个子节点标记深度和父节点。那么查找公共祖先时,只需将较矮的那个节点往上提到两个节点变为相同高度,一起往上搜索即可。复杂度:dep[u] + dep[v]个
2015-11-12 00:55:48 496
原创 对打印最小点覆盖方案的疑问[未解决]
起因:[UVA 11419]SAM I AM 疑惑: 为什么对左边未匹配的点重新进行匹配之后,最小点覆盖涉及的点就是左边未标记的点加上右边已经标记的点。 代码如下: printf("%d", ans); memset(visx, 0, sizeof visx); memset(visy, 0, sizeof visy); for (
2015-11-03 21:19:25 351
原创 查找无序数组中的第K个最小值[快排思想]
分析: 快排每次会将作为哨兵的数移到给定位置上,我们可以依据这个特点,当它刚好在第K位时,返回这个值,否则进行递归。 个人感受: int *a = new int(10); int *a = new int[10]; 前者创建一个int型数,后者创建一个int型数组,被坑哭啦= =。 具体代码如下:#include<iostream>#include<cstdlib>#include<
2015-11-02 20:36:00 821
原创 [HDU 3435]A new Graph Game[拆点][KM]
题目链接:[HDU 3435]A new Graph Game[拆点][KM] 题意分析: 图中所有的哈密顿环中,边权之和最小的那个环和是多少? 解题思路: 考虑最终的环对于每个点来说,都有一条出边和入边,将点拆开成一个入点、一个出点,那么这个问题就成为了求二分图中最小完美匹配了(一个出点对应一个入点)。边权值取相反值,进行最大完美匹配即可。 个人感受: 原来我的板子是求最大完美匹配=
2015-11-02 12:30:58 462
原创 [HDU 2255]奔小康赚大钱[KM算法]
题目链接:[HDU 2255]奔小康赚大钱[KM算法] 题意分析: 最佳完美匹配。使连线两边权值只和最大。 解题思路: KM算法之~ 推荐一篇文章:点我 个人感受: KM-KM-KM。修改顶标实在太机智了。 具体代码如下:#include<cstdio>#include<cstring>#include<iostream>using namespace std;const i
2015-11-02 00:54:57 512
原创 [UVA 11235]Frequent values[线段树区间查询]
题目链接:[UVA 11235]Frequent values[线段树区间查询] 题意分析: 查询区间中出现次数最多的数出现的次数。给出的数列是从小到大排序的。 解题思路: 因为是排好序的,所以同样的数是连在一起的,线段树区间查询即可。lsum[]记录以这个区间左边开始最长的连续长度,rsum[]表示以这个区间右边开始最长的连续长度。sum[]代表区间中最长的连续长度。 个人感受: 久不
2015-11-01 23:01:35 577
原创 [HDU 2121]Ice_cream’s world II[无定根的最小树形图]
题目链接:[HDU 2121]Ice_cream’s world II[无定根的最小树形图] 题意分析: 选择一个点作为根节点形成一个最小树形图,根节点下标尽量小。 解题思路: 虚拟出一个根节点,让它和每个点构成的边权值为 图中所有边权值之和+1 ;那么最终结果就是,如果所得图权值大于等于上值的两倍,那么不存在(从虚点连了两条边以上),否则答案就等于所得结果减去上值(即减去多出来的那一条虚边
2015-10-30 23:13:25 539
原创 [UVA 11865]Stream My Contest[最小树形图][二分答案]
题目链接:[UVA 11865]Stream My Contest[最小树形图][二分答案] 题意分析: 建立一个从服务器(节点0),到所有大学的网络,在可行的网络中,最小带宽最大的网络对应的带宽是多少? 题目中给出了两个限制:大学间原先是没有网络的,所以需要建立网络,要花费一定的费用,最大预算为C元,且边是单向的。大学间的网络都有一个带宽,在生成的网络中,流量不能超过最小带宽,否则无法送
2015-10-28 13:19:43 460
原创 [POJ 3164]Command Network[最小树形图]
题目链接:[POJ 3164]Command Network[最小树形图] 题意分析: 求从根节点出发,到达所有其他节点的边所构成权值最小的生成子图权值是多少? (单向边) 解题思路: 无向图的最小生成树再熟悉不过了,这次变成了有向图上固定结点的最小生成树,引入一个算法:朱-刘算法,没错,就是这个名字,Made In China~。 首先看看《挑战程序设计》对最小树形图的定义:
2015-10-28 00:46:51 434
原创 [HDU 4725]The Shortest Path in Nya Graph[建图]
题目链接:[HDU 4725]The Shortest Path in Nya Graph[建图] 题意分析: 1到n点间,有边通过代价为w。点又在相应的层上,x层上的点可以到达x + 1和 x -1层上的任意一个点,代价为c。问:点1到点n的最小代价是?无法到达输出『-1』 解题思路: 这题可以在点和层之间连一条边,这里我们设代表层的点是n + 2 * x,而点n + 2 * x - 1代
2015-10-25 02:21:33 468
原创 [POJ 3169]Layout[差分约束][最短路]
题目链接:[POJ 3169]Layout[差分约束][最短路] 题意分析: 牛儿们互相间有喜欢双方的,也有讨厌双方的。互相喜欢的,希望离得尽量近,互相讨厌的,希望离得尽量远,问:能否根据要求把牛儿们排成一行?如果能,请输出1到N的最大距离(如果为无穷输出『-2』),否则,输出『-1』。 解题思路: a喜欢b,那么dis(a,b)<=cdis(a, b) <= c,a讨厌b,那么dis(a,
2015-10-25 02:01:31 527
原创 [CodeForces 346A]Alice and Bob[数学]
题目链接:[CodeForces 346A]Alice and Bob[数学] 题意分析: Alice 和 Bob又来玩游戏了,这次游戏规则是从给出的数列中取出两个数,把他们差的绝对值增加到原数列中,如果差的绝对值已经出现在原数列中,则这次操作是无效的,最终无法操作的人失败。 解题思路: 因为放入的是差的绝对值,所以最终数列中的数肯定都比最大的那个数小。那么要添加多少次数字呢?也就是总共能进
2015-10-24 09:24:12 870
原创 [POJ 1062]昂贵的聘礼[最短路][枚举]
题目链接:[POJ 1062]昂贵的聘礼[最短路][枚举] 题意分析: 中文题。注意这句话: 地位差距超过一定限制的两个人之间不会进行任何形式的直接接触,包括交易。他是一个外来人,所以可以不受这些限制。但是如果他和某个地位较低的人进行了交易,地位较高的的人不会再和他交易,他们认为这样等于是间接接触,反过来也一样。也就是说:同一条路径上的任意两个人,等级差不能超过M。 解题思路: 另设一
2015-10-24 00:38:28 491
数据结构与算法分析(C++版)(第三版)第五章个别习题答案
2015-10-16
数据结构与算法分析(C++版)(第三版)第四章个别习题
2015-09-25
数字识别系统预处理类
2015-09-22
数据结构与算法分析(C++版)(第三版)第三章个别习题答案
2015-09-22
The C Programming Language 2nd Edition(英文原版,包含答案)
2014-10-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人