摘要: 很标准的01背包问题 1 //#define LOCAL 2 #include 3 #include 4 #include 5 using namespace std; 6 7 const int maxn = 1000 + 10; 8 int w[maxn], v[maxn], dp[ma... 阅读全文
posted @ 2014-08-20 11:55 AOQNRMGYXLMV 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 人生第一道图论题啊,有木有题意:有一个树状网络,有一个原始服务器s,它的服务范围是k问至少再放多少台服务范围是k的服务器才能使网络中的每个节点都被覆盖掉解法:我们以原始服务器为根将其转化成一个有根树,则深度不超过k的节点都已经被原始服务器覆盖。我们选择深度最大的节点u然后将它的k级祖先设为服务器,进... 阅读全文
posted @ 2014-08-20 10:00 AOQNRMGYXLMV 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 变形的Manacher算法,在扩展的时候要加入限制条件,满足题目中说的从左到中间身高不减。其他地方倒是没有什么改动。。 1 //#define LOCAL 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7... 阅读全文
posted @ 2014-08-19 18:55 AOQNRMGYXLMV 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 大白书中的题感觉一般都比较难,能理解书上代码就已经很不错了按照经验,一般数据较小的题目,都有可能是用状态压缩来解决的题意:问一个面积为x×y的巧克力,能否切若干刀,将其切成n块面积为A1,A2,,,An块巧克力。(每次只能沿直线切一块巧克力)设计状态:f(r, c, S) = 1表示r行c列的巧克力... 阅读全文
posted @ 2014-08-19 18:13 AOQNRMGYXLMV 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 多敲几个模板题,加深一下对Manacher算法的理解。这道题给的时间限制15s,是我见过的最长的时间的了。看来是为了让一些比较朴素的求最大回文子串的算法也能A过去Manacher算法毕竟给力,运行时间200+MS 1 //#define LOCAL 2 #include 3 #include 4... 阅读全文
posted @ 2014-08-18 20:17 AOQNRMGYXLMV 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 变形的求最大回文子串,要求输出两个端点。我觉得把'b'定义为真正的'a'是件很无聊的事,因为这并不会影响到最大回文子串的长度和位置,只是在输出的时候设置了一些不必要的障碍。另外要注意一下原字符串s1中的字符在预处理以后的字符串s2中对应的坐标关系,这样输出的时候就可以照着这个关系转化。轻松1A,嘿嘿... 阅读全文
posted @ 2014-08-18 19:55 AOQNRMGYXLMV 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 求一个字符串的最长子串,Manacher算法是一种O(n)的算法,很给力!s2[0] = '$',是避免在循环中对数组越界的检查。老大的代码:http://www.cnblogs.com/BigBallon/p/3816890.html详细的图解:http://blog.csdn.net/xingy... 阅读全文
posted @ 2014-08-18 18:25 AOQNRMGYXLMV 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 这道题和HDU 1016的素数环那道题很相似。虽然1A了,但写代码的过程中还是丢三落四的。贴完代码闪人,嘿嘿 1 //#define LOCAL 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 i... 阅读全文
posted @ 2014-08-18 09:16 AOQNRMGYXLMV 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 以一个简单的BFS对基础搜索做一个收尾好了。给一个草,然后以这棵草为九宫格的中心,每周向周围八个方向扩散,问多少个星期能把这个农场占满。遍历整个map,最后一个出队列的对应的星期数就是所求。 1 //#define LOCAL 2 #include 3 #include 4 #include ... 阅读全文
posted @ 2014-08-18 08:45 AOQNRMGYXLMV 阅读(468) 评论(0) 推荐(0) 编辑
摘要: 在刚刚写完代码的时候才发现我以前交过这道题,可是没有过。后来因为不理解代码,于是也就不了了之了。可说呢,那时的我哪知道什么DFS深搜的东西啊,而且对递归的理解也很肤浅。这道题应该算HDU 2610 Sequence one的简化版,判重也非常简单。其他也没有什么好说的了,直接上代码吧。 1 //#d... 阅读全文
posted @ 2014-08-17 23:28 AOQNRMGYXLMV 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 这道题做的我想哭啊。。WA了将近十次了吧一开始我用数组模拟的队列,后来和老大代码对拍,感觉改的是基本都一模一样了,还是WA实在没有办法了,改用queue了题目里的x是列y是行,和代码里的反过来的,要注意!题目里面说在起点的时候无论朝哪个方向走都不算一次转弯,所以我们将方向和转弯次数都赋值为-1,这样... 阅读全文
posted @ 2014-08-17 18:20 AOQNRMGYXLMV 阅读(182) 评论(2) 推荐(0) 编辑
摘要: 搜索虐我千百遍,我待搜索。。。好吧,我还木有初恋题意:我开始理解题意就理解偏了,Orz题中有n个元素构成的序列,求出前p个非递减子序列。子序列是先按长度排序的,然后按原序列先后位置排序的。这里的非递减是指子序列中从左到右元素大小的值不减,对,就是这我理解错了。如果p>所有符合要求的子序列的个数,那么... 阅读全文
posted @ 2014-08-17 15:43 AOQNRMGYXLMV 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 这是一维的BFS,而且没有什么变形,应该是最基础的BFS了吧题意:有这样一个奇葩的电梯,你在第i层的时候你只能选择上或者下Ki层,也就是你只能从第i层到达i+Ki或者i-Ki层。当然电梯最低只能在1层最高只能在n层。给出起点和终点问最少需要多少次才能到达终点,如果不能到达输出-1没有什么好解释的了,... 阅读全文
posted @ 2014-08-16 16:51 AOQNRMGYXLMV 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 其实手写模拟一个队列也挺简单的,尤其是熟练以后。尼玛,这题欺负我不懂国际象棋,后来百度了下,国际象棋里骑士的走法就是中国象棋里面的马所以搜索就有八个方向对了注意初始化标记数组的时候,不要把起点标记为已走过。因为测试数据里面有一组f6 f6,此时样例输出的是0 1 //#define LOCAL 2 ... 阅读全文
posted @ 2014-08-16 16:25 AOQNRMGYXLMV 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 奇葩!这么简单的广搜居然爆内存了,而且一直爆,一直爆,Orz而且我也优化过了的啊,尼玛还是一直爆!先把代码贴上睡觉去了,明天再来弄 1 //#define LOCAL 2 #include 3 #include 4 #include 5 #include 6 #include 7 usin... 阅读全文
posted @ 2014-08-15 23:51 AOQNRMGYXLMV 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 之前的BFS都是需要一个标记数组,但这个题不一样,因为可能一个格子不止走一次。那么我们就要寻找新的入队条件:left比上次经过的时候大才入队(left表示上次经过该点时剩余的时间)。为什么呢?我们重复走过一个点只有一个可能,那就是为了去取那个,所以如果取完后再回头经过这个点的时候剩余时间变多了,我们... 阅读全文
posted @ 2014-08-15 22:07 AOQNRMGYXLMV 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 简单变形的广搜,而HDU 1026Ignatius and the Princess I 是这道题的升级版,因为每个格子停留的时间可能不相同。这里,天使的朋友可能有多个,所以我们从天使开始逆向去找他的朋友,最先找到他的朋友就是最短时间。题目的变形在于多了守卫,每当一个守卫进入队列,第一次只扩展当前位... 阅读全文
posted @ 2014-08-15 11:16 AOQNRMGYXLMV 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 给出一个三维的迷宫以及起点和终点,求能否到大终点,若果能输出最短步数三维的问题无非就是变成了6个搜索方向最后强调一下xyz的顺序,从输入数据来看,读入的顺序是map[z][x][y]总之,这是很基础的一道题 1 //#define LOCAL 2 #include 3 #include 4 #i... 阅读全文
posted @ 2014-08-15 00:21 AOQNRMGYXLMV 阅读(204) 评论(1) 推荐(0) 编辑
摘要: 广搜的一个简单变形,思路还是一样的,依旧是维护一个队列,将一个节点不断的扩展,扩展完后出队。这道题还有两个特点就是:可能遇到怪兽,因此需要额外花费n秒的时间来打败它。最终还要输出路径。因此结构体里面prex 和 prey就是来记录下一个格子的坐标的。因为有了怪兽所以我们不能一搜到起点就退出搜索,因为... 阅读全文
posted @ 2014-08-13 23:16 AOQNRMGYXLMV 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 也许大多数做法都是打表,但这里用位运算的思想来解决这个问题,位运算果然强大,Orz原文地址,感觉讲的很明白了:http://www.cnblogs.com/gj-Acit/archive/2013/08/04/3236148.html之前一直看不明白的地方就是,主副对角线变量二进制位所代表的含义。F... 阅读全文
posted @ 2014-08-13 19:32 AOQNRMGYXLMV 阅读(155) 评论(0) 推荐(0) 编辑