摘要: 原题链接:http://hihocoder.com/problemset/problem/1061 题意: 给定一个不超过10MB的字符串,问是否存在一个子串,是相同数量的不同的连续升序小写字母组成的。 分析: 这题坑的我想死,,一开始写了一个for循环,怎么也查不出错,就是WA,差点吐血。。 最后 阅读全文
posted @ 2016-12-07 20:38 tak_fate 阅读(320) 评论(0) 推荐(0) 编辑
摘要: 题意:有一个容量为n的背包,有两种宝物,体积分别为S1,S2;价值为V1,V2。这两种宝物有无数种,现在向背包中塞宝物,问最多能装多少价值。 分析:可以很容易想到这个代码 但是,如果max(s1,s2)很小的话,就会瞬间爆炸。 比如n有1073741824,但是max(s1,s2)==2,循环就到了 阅读全文
posted @ 2016-12-04 22:01 tak_fate 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 题意:有一个4*4的矩阵,每次可以让某一行向左或向右滚动一次,或者让某一列向上或向下滚动一次,问在5次之内要几次能使矩阵达到每行的数字都相同或者每列的数字都相同,如果超过5次,就输出-1。 分析:第一次学A*和IDA*,看这题是中文题就先写了这题,一开始是用A*写的,然后写的很蛋疼。之后发现也就5次 阅读全文
posted @ 2016-11-18 09:14 tak_fate 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 推荐学习资料: 百度百科 dm_vincent的专栏 某推酷 总结: 最近花了一点点时间学了拓扑排序,感觉到图论真是神奇。 总的来说,拓扑排序的题还是有一定的灵活度的,除去一些比较水的题,很容易跟其他算法或者数据结构混在一起,一下子难度就上去了,也从单一的模板的题变为了多重模板题或者智力题。 拓扑排 阅读全文
posted @ 2016-11-02 11:46 tak_fate 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 题意:有一排数字,大的数字向左或者向右吃相邻的比它小的数字,问能不能吃成另一个数列。 分析: 稍微想一下,可以感觉得到,新数列的每个数字都是由一段连续的原数列子数列相互吃成的,并且这些子数列也是从头连续的相连的,进而组成的原数列。比如 a[0] [1] [2] [3] [4] b[0] [1] 如果 阅读全文
posted @ 2016-11-02 01:34 tak_fate 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 题意:一个家族里,人物关系很复杂,现在要排序每个人的话语权,要求每个祖先的话语权都要比子孙的高,输出话语权从大到小的顺序。 分析: 原本以为这题有坑,结果随便撸个普通的拓扑序列就A了,好水。 祖先指向子孙,每次取出入度为0即可。 代码: 阅读全文
posted @ 2016-10-31 20:21 tak_fate 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1811 题意:有个很多关系,现在需要产生一个名单,有的人比有的人牛逼,有的人没有的人牛逼,有的人一样牛逼,现在需要通过牛逼程度排名,如果1比2牛逼,1的排名就比2前,如果1和2一样牛逼,就比两个人的人品, 阅读全文
posted @ 2016-10-20 23:43 tak_fate 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2647 题意: 一场比赛,现在已经有了结果,主办方要给选手分配奖励,判断是否能够分配,如果不能就输出-1,不能的话就输出主办方最小需要准备的奖金总数。 每个选手最低给888元。 分析: 拓扑排序入门题吧。 阅读全文
posted @ 2016-10-18 20:36 tak_fate 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 原题链接:http://codeforces.com/problemset/problem/722/D 题意: 数列Y,每个数都不同,这是数列是由数列X生成的。X中每个数都不同,并且生成方法有三种 1、保持原来的 2、x替换成x*2 3、x替换成x*2+1 需要求使X中最大数尽量小的数列X。 分析: 阅读全文
posted @ 2016-10-17 20:27 tak_fate 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 原题链接:http://codeforces.com/contest/722/problem/C 题意:给一条数列,现在要来破坏这个数列,给出一个依次破坏数列中元素的顺序。每破坏一个输出当前数列最长连续子序列的和。 分析: 一开始感觉可以用线段树写,写好build后,感觉写的好烦。仔细想了下题目中的 阅读全文
posted @ 2016-10-16 01:41 tak_fate 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 原题链接:http://poj.org/problem?id=2191 题意:定义2^p-1(p为素数)的合数为梅森合数。 求求p<=k的梅森合数 分析:实力打一波表 代码: 阅读全文
posted @ 2016-09-28 12:13 tak_fate 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 原题链接:http://poj.org/problem?id=1365 题意: 告诉你n分解后的结果,底数pi和ei,要你重新分解n-1 分析: 一道裸的唯一分解定理题。 随便瞎几把一写都能A。 代码: 阅读全文
posted @ 2016-09-26 21:34 tak_fate 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 原题链接:http://hihocoder.com/problemset/problem/1383t 题意:给定一些文件的绝对路径,然后把整个主目录按照树形结构输出。 分析: 字典树,用Map,从从字符串映射到下个节点, 注意:如果出现 a/b/c a/b 这种应该输出: a b c b 因为b既是 阅读全文
posted @ 2016-09-24 18:31 tak_fate 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2126 题意:给n个物品,和m块钱,输出最多物品个数和其方案数。 委屈:求出最多物品个数就是一个裸的01背包,但是同时求出方案数,难住了我。 想了半天,感觉可以一波dp求出来,但是又想不明白状态是怎么表示 阅读全文
posted @ 2016-09-22 02:08 tak_fate 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 推荐学习资料: 总结: (待续) 题集: 入门水题: 智力技巧题: Hihocoder The Book List 综合应用题: 阅读全文
posted @ 2016-09-18 20:45 tak_fate 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 题意:一个数列,一开始只有一个1,进行k次操作,每次操作都把数列中原本的数全都翻倍然后追加在数列的后面,形成了一个全新的数列,输出全新数列中l到r的和。 分析:以上的题意是经过转化后的题意,变的非常简单,而不在卡在二维的思维中出不来。 可以看到如果在后半段,就等于前半段对应位置的两倍,可以从最高2^ 阅读全文
posted @ 2016-09-16 16:05 tak_fate 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 原题链接:http://codeforces.com/problemset/problem/713/A 题意:一个集合,有三个操作,+-?,其中+和-和上一次cf的字典树那题是一个意思,?操作是统计满足01模式串的字典树中数的个数。如果模式串比字典中的数长就补全数,如果数长就补全模式串。 分析: 这 阅读全文
posted @ 2016-09-16 15:30 tak_fate 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 原题链接:http://codeforces.com/problemset/problem/706/D 题意:需要你模拟一个多重集合(初始拥有0),该集合拥有三个功能 1、+ x 增加一个x(可以同时存在多个x,因为是多重集合) 2、- x 去掉一个x 3、? x 输出在这个集合中和x异或最大的值。 阅读全文
posted @ 2016-09-15 11:58 tak_fate 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1247 题意:输出在所给字典中所有的hat's word。hat's word:是字典中由其他两个单词连接而成的的单词。 分析:现存下所有单词,然后遍历查询。用exist记录当前节点是否组成单词。当遍历某 阅读全文
posted @ 2016-09-14 23:34 tak_fate 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1671 题意:给很多电话号码,如果在拨号的时候,拨到一个存在的号码,就会直接打出去,以致以这个号码为前缀的所有其他比这个号码长的号码将不能拨出,问是不是所有的号码都能拨。 分析:可以直接建立字典树,节点中 阅读全文
posted @ 2016-09-14 23:22 tak_fate 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1251 题意:先给定一些单词构成字典,然后再查一些在字典中以一些字母串为前缀的单词有几个。 分析:很基础很普通的字典树题目,但是用动态的字典树会超时,所以要用静态的字典树。 代码: 阅读全文
posted @ 2016-09-14 23:09 tak_fate 阅读(245) 评论(0) 推荐(0) 编辑
摘要: (转载自Matrix67博客) 看到的一篇讲的很好的数论,转载一下 一个数是素数(也叫质数),当且仅当它的约数只有两个——1和它本身。规定这两个约数不能相同,因此1不是素数。对素数的研究属于数论范 畴,你可以看到许多数学家没事就想出一些符合某种性质的素数并称它为某某某素数。整个数论几乎就围绕着整除和 阅读全文
posted @ 2016-09-14 00:21 tak_fate 阅读(343) 评论(0) 推荐(0) 编辑
摘要: 原题链接:http://poj.org/problem?id=2739 题意:问一个数有几种方法用连续的素数和表示。 分析:其实就是很简单,先打表,然后对prime数组跑一波尺取法,如果==n就ans++。 代码: 阅读全文
posted @ 2016-09-03 01:00 tak_fate 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 原题链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=2955 (可能失效) 题意:小偷抢劫n个银行,每个银行有两个属性,m为拥有的库存金额,p为小偷偷这个银行被抓的概率。小偷抢银行的总被抓概率不能超过V。求最多抢到的金额。 分析:这题拿到手很容易 阅读全文
posted @ 2016-09-01 23:45 tak_fate 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 题意:有n个硬币,每个硬币有个价值,两个人分配硬币,要求最公平分配时候两人拿到的钱的差。 分析:很明显,两人拿到的钱的差越小越公平。 一开始想,一定是一人一半最公平,所以直接把总和sum/2,对着half跑01背包,但是WA了,修改后分别讨论奇偶,额外进行一次sum-half的01背包,也WA,仔细 阅读全文
posted @ 2016-09-01 22:01 tak_fate 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 原题链接:http://www.codeforces.com/problemset/problem/710/E 题意:一个字符串,开始长度为0,目标长度为n,长度+1或-1需要的时间为x,长度*2需要的时间为y,求0到m需要的最少时间。 分析:这题一上来直接写优先队列bfs,然后很愉快的超内存的了。 阅读全文
posted @ 2016-08-26 18:41 tak_fate 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 原题链接:http://poj.org/problem?id=3067 题意:左右两条边,分别有n和m 个城市,现在有k条线把左右各一个城市连接起来,问所有的边的交点。 分析:一开始我想用二维树状数组做,就是求在两点交错的边,在二维矩阵中就是找其中一个点去掉右下角子矩阵之外的和,如图,要求的就是粉色 阅读全文
posted @ 2016-08-25 15:19 tak_fate 阅读(385) 评论(0) 推荐(0) 编辑
摘要: 原题链接:http://poj.org/problem?id=2299 题意:求冒泡排序交换数字的次数 分析:起初听别人说挑战上的冒泡排序交换次数,一直是一头雾水。某天仔细想想,瞬间懂了。 其实就是把给数列按照给你的顺序插入到另一个数组中,插入的位置就是这个数在已经排好序的情况下所在的位置。所以前面 阅读全文
posted @ 2016-08-21 16:53 tak_fate 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 原题链接:http://poj.org/problem?id=2155 题意:一个n*n的矩阵,有q次询问两种操作,一种是选定一个子矩阵,0变1,1变0,还有一种是查询某个位置的值,初始为全0 分析:01互换很容易想到异或,及需要将树状数组的模板略作修改,如下: 由于第一次写二维的树状数组,二维的循 阅读全文
posted @ 2016-08-21 14:30 tak_fate 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 原题链接: http://acm.split.hdu.edu.cn/showproblem.php?pid=5857 (可能会失效) 题意: 给你一个升序的数列,查询两个区间合并之后的数列里的中位数 分析: 看到100000,就会以为是线段树。其实显然没有充分利用已经升序这个特性,仔细考虑其实就是 阅读全文
posted @ 2016-08-19 09:10 tak_fate 阅读(421) 评论(0) 推荐(0) 编辑
摘要: 原题链接: http://poj.org/problem?id=2718 题意: 给你几个数字,可以分成两个子集,然后分别按一定顺序排列组成一个数,求出这两只值差的绝对值的最小值。 分析: 反正也是刷着玩,果断先交一波全排列枚举的代码,果断TLE,然后开始想正解。 稍微想想,既然要差最小,肯定是两个 阅读全文
posted @ 2016-08-16 00:46 tak_fate 阅读(1055) 评论(2) 推荐(0) 编辑
摘要: 原题链接: 比较麻烦,就不挂,可以上uva live找,也可以用virtual judge挂题。 题意: 输出从1到k的所有路径,不能重复经过 分析: 这题就是简单的深搜回溯,用一个数组记录路径,满足条件时输出。紫书上说需要先判断1到k是否联通,不然会超时。交了一发直接深搜,果然TLE。所以需要先判 阅读全文
posted @ 2016-08-15 17:46 tak_fate 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 原题链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=825&page=show_problem&problem=4475 题意: 在m*n的地图上,有障碍物(1)和空地(0),机器人 阅读全文
posted @ 2016-08-09 01:03 tak_fate 阅读(735) 评论(3) 推荐(0) 编辑
摘要: 原题链接: http://hihocoder.com/problemset/problem/1353 题意: 给你一个数列和一个m,从数列里选任意的数,使他们的和大于等于m又是最小,输出这个和。如果不存在输出-1。 分析: 这题一上去,感觉是贪心,然后排个序从大加,加到大于等于m就跳出,交一发直接W 阅读全文
posted @ 2016-08-07 21:58 tak_fate 阅读(756) 评论(0) 推荐(0) 编辑
摘要: 原题链接: http://acm.hdu.edu.cn/showproblem.php?pid=5806 题意: 给你一个m和k,求在n个元素的数列里有多少个区间的第k大的值大于等于m。 分析: 又是区间题,但是这题一看就感觉是尺取法。我们可以发现一个规律,如果一个区间存在第k大大于等于m,那每次加 阅读全文
posted @ 2016-08-06 23:17 tak_fate 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 原题链接: http://acm.hdu.edu.cn/showproblem.php?pid=5805 题意: 给你一个数列,删除其中的一个数,假设删除任意一个数的概率相同,求相邻的数差的绝对值的最大值的期望,题目只要求输出乘概率前的答案。 分析: 模拟: 只需要先求出本身所有相邻数之差的绝对值, 阅读全文
posted @ 2016-08-06 23:01 tak_fate 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 原题链接: http://codeforces.com/problemset/problem/703/B 题意: 有n个城市,1-n形成一个环,其中有k个省会,每个省会应该和每个城市都连起来。每个城市有一个美丽值,两城市之间的连路的美丽值为两城市美丽值的乘积,要求所有连路的美丽值的总和。 分析: 首 阅读全文
posted @ 2016-08-05 10:48 tak_fate 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 原题链接: http://codeforces.com/problemset/problem/676/C 题意: 有一串a和b组成的字符串,要求最多改k的字母的情况下,最长的相同子串。 例如k=2:abba->aaaa,k=3:aaabb->bbbbb 分析: 首先可以看出如果要最长的话,改的a或b 阅读全文
posted @ 2016-08-04 09:00 tak_fate 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 原题链接: http://acm.hdu.edu.cn/showproblem.php?pid=5641 感悟: 这道题简直坑死了,本来写的好好的感觉没问题了,教的时候RE了,数组越界,仔细看看题目,发现输入的数字是(0到int_max),感觉很疑惑,不是应该1-9么。。 没想到这题就是想让你判断, 阅读全文
posted @ 2016-03-18 01:14 tak_fate 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 原题链接: http://acm.hdu.edu.cn/showproblem.php?pid=1016 感悟: 这题一看就是递归+深搜+回溯,本来的写的代码已经可以输出正确答案,但是大部分判断都是循环,怕过不了,结合其他一些博主的代码,优化了一下。特别是用flag表示是否数组这一招比较佩服,用内存 阅读全文
posted @ 2016-03-14 22:05 tak_fate 阅读(180) 评论(0) 推荐(0) 编辑