上一页 1 2 3 4 5 6 7 8 9 ··· 19 下一页

2013年9月16日

UVa1328 - Period(KMP找最短循环节)

摘要: 题目大意 给定一个长度为n的字符串,求它的每个前缀的最短循环节 题解 白书例题~~~ ”错位部分“长度为i-f[i], 如果这个前i个字符能够组成一个周期串,那么”错位”部分刚好是一个循环节i-f[i]就是循环节长度~~~~ 代码: #include #include #include #include using namespace std;#define MAXN 1000005int f... 阅读全文

posted @ 2013-09-16 10:56 仗剑奔走天涯 阅读(225) 评论(0) 推荐(0) 编辑

2013年9月13日

HDU1247 - Hat’s Words(Trie树)

摘要: 题目大意 给定一些单词,要求你把所有的帽子单词找出来,如果某个单词恰好由另外两个单词连接而成,那么它就是帽子单词 题解 先把所有单词插入到Trie树,然后判断每个单词是不是帽子单词,做法就是:对于第i个单词,假设为s[0..n],枚举中间节点j,在Trie树上查询s[0..j]和s[j+1,…n]两个单词是否存在,存在的话说明它就是帽子词…WA了几发,找到帽子单词的时候忘记break了。。。 代码... 阅读全文

posted @ 2013-09-13 15:38 仗剑奔走天涯 阅读(214) 评论(0) 推荐(0) 编辑

HDU1671 - Phone List(Trie树)

摘要: 题目大意 给定一些电话号码,判断是否有电话号码是其他电话号码的前缀 题解 裸Trie树嘛~~~~只需要一个插入过程即可,假设X是Y的前缀,在插入的过程中有两种情况,X在Y之前插入,那么在插入Y的时候经过了X的尾结点,插入的过程中判断下即可,还有一种情况就是X在Y之后插入,那么插入X的时候肯定不需要插入新结点~~~也记录一下即可~~~~~被坑了好多次,先是没有考虑第二种情况,改了之后RE,然后脑残的... 阅读全文

posted @ 2013-09-13 09:56 仗剑奔走天涯 阅读(189) 评论(0) 推荐(0) 编辑

2013年9月12日

HDU1251 - 统计难题(Trie树)

摘要: 题目大意 Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀). 题解 把单词插入到Trie树中,Trie树的每个结点记录以此结点结尾的单词前缀出现的次数,每次把进行单词插入的时候把沿途经过的结点+1即可 代码: #include #include #include #include... 阅读全文

posted @ 2013-09-12 21:43 仗剑奔走天涯 阅读(185) 评论(0) 推荐(0) 编辑

HDU1075 - What Are You Talking About(Trie树)

摘要: 题目大意 给定一些火星文单词以及对应的英语单词,然后给你一些火星文,要求你翻译成对应的英文 题解 第一次写Trie树! 把所有火星文单词插入到Trie树中,并且每个火星文单词结尾的节点记录相应英文单词的位置,然后进行查询即可~~~~ 代码: #include #include #include #include #include #include using namespace std;const... 阅读全文

posted @ 2013-09-12 20:21 仗剑奔走天涯 阅读(233) 评论(0) 推荐(0) 编辑

Trie树模板~~~

摘要: const int maxnode = 4000 * 100 + 10;const int sigma_size = 26;// 字母表为全体小写字母的Triestruct Trie { int ch[maxnode][sigma_size]; int val[maxnode]; int sz; // 结点总数 void clear() { sz = 1; memset(ch[0], 0, sizeof(ch[0])); } // 初始时只有一个根结点 int idx(char c) { return c - 'a'; } // 字符c的编号 // 插入字符串s,附加信息为v。 阅读全文

posted @ 2013-09-12 14:03 仗剑奔走天涯 阅读(186) 评论(0) 推荐(0) 编辑

2013年9月10日

Ural1057 - Amount of Degrees(数位DP)

摘要: 题目大意 求给定区间[X,Y]中满足下列条件的整数个数:这个数恰好等于K个互不相等的B的整数次幂之和。例如,设X=15,Y=20,K=2,B=2,则有且仅有下列三个数满足题意: 输入:第一行包含两个整数X和Y。接下来两行包含整数K和B。 输出:只包含一个整数,表示满足条件的数的个数。 数据规模:1 ≤ X ≤ Y ≤ 2^31−1,1 ≤ K ≤ 20, 2 ≤ B ≤ 10。 题解 《浅谈数... 阅读全文

posted @ 2013-09-10 10:18 仗剑奔走天涯 阅读(293) 评论(0) 推荐(0) 编辑

2013年9月6日

Codeforces295A - Greg and Array(线段树的成段更新)

摘要: 题目大意 给定一个序列a[1],a[2]……a[n] 接下来给出m种操作,每种操作是以下形式的: l r d 表示把区间[l,r]内的每一个数都加上一个值d 之后有k个操作,每个操作是以下形式的: x y 表示把第x种操作一直到第y种操作都执行一遍 最终输出在k个操作结束之后的序列 题目大意 就是线段树的成段更新嘛~~~先用线段树统计每种操作的次数,然后再执行m次成段更新,最后查询到底的查询即可... 阅读全文

posted @ 2013-09-06 11:02 仗剑奔走天涯 阅读(382) 评论(0) 推荐(0) 编辑

Codeforces13C–Sequence(区间DP)

摘要: 题目大意 给定一个含有N个数的序列,要求你对一些数减掉或者加上某个值,使得序列变为非递减的,问你加减的值的总和最少是多少? 题解 一个很显然的结果就是,变化后的每一个值肯定是等于原来序列的某个值,因为只需要变为非递减的,所以对于某个数要么不变,要么变成左右附件的某个值。这样我们就可以根据前述条件得出DP方程了:dp[i][j]=min(dp[i][j-1],dp[i-1][j]+|a[i]-b[j... 阅读全文

posted @ 2013-09-06 10:44 仗剑奔走天涯 阅读(623) 评论(0) 推荐(1) 编辑

2013年9月4日

Codeforces294B - Shaass and Bookshelf(贪心)

摘要: 题目大意 给你N本书,每本书由一个厚度t[i](1或者2),宽度w[i],高度都是一样,把一些书竖着放,然后一些书横着放在同一层,就像下图那样放: 问你把所有的书放好之后竖着的书的总厚度是多少? 题解 题目有个重要条件,那就是每本书的厚度要么为1要么为2,因此我们可以根据书的厚度分为两类,然后每类按书的宽度从大到小排序,然后用二重循环进行枚举,把厚度为1的前i个和厚度为2的前j个竖着放,其他的横... 阅读全文

posted @ 2013-09-04 16:35 仗剑奔走天涯 阅读(571) 评论(0) 推荐(0) 编辑

2013年9月3日

POJ3461–Oulipo(KMP)

摘要: 题目大意 给定一个文本串和模式串,求模式串在文本串中出现的次数 题解 正宗KMP 代码: #include#include#include#includeusing namespace std;#define MAXN 10005char T[MAXN*100],P[MAXN];int f[MAXN];void getFail(){ int m=strlen(P); f[0]=f[1]... 阅读全文

posted @ 2013-09-03 22:41 仗剑奔走天涯 阅读(227) 评论(0) 推荐(0) 编辑

2013年8月28日

Codeforces335B - Palindrome(区间DP)

摘要: 题目大意 给定一个长度不超过5*10^4的只包含小写字母的字符串,要求你求它的回文子序列,如果存在长度为100的回文子序列,那么只要输出长度为一百的回文子序列即可,否则输出它的最长回文子序列 题解 这个题很考验思维~~~相当不错的题,想到了就很简单,其实也就是充分利用题设。n的规模为5*10^4,如果不进行一些处理直接上O(n^2)算法肯定会超时,但是题目里有个很重要的条件,那就是如果存在长度为1... 阅读全文

posted @ 2013-08-28 08:46 仗剑奔走天涯 阅读(338) 评论(0) 推荐(0) 编辑

2013年8月27日

Codeforces Round #197 (Div. 2)

摘要: 这次做了ABC三题,D题知道是线段树,但是没能在二十分钟内写出来,弱成渣了,看来果断以后还得刷刷线段树,C题最终测试的时候悲剧了,Wrong answer on test34。赛后稍微改了下A了,D题也A 了。总得来说毛病还很多,这次的题目除了最后一题,其他的真心不难,做出四道题目来应该来说很简单,但是我还是只做出两道来。分析一下原因,还是自己能力不够,手速不够快,看英语题目也看得很慢,然后还没看... 阅读全文

posted @ 2013-08-27 11:06 仗剑奔走天涯 阅读(260) 评论(0) 推荐(0) 编辑

2013年8月21日

费用提前计算相关的DP(BZOJ2037,POJ3042,ZOJ3469)

摘要: 在刷ZeroClock大神的区间DP专辑,遇见了ZOJ3469,完全不无从下手,然后有人说是论问题,推荐看徐源盛《对一类动态规划问题的研究》这篇论文,果断得膜拜了下,感觉好神奇,可以把未来的费用提前计算好~~~顺便把相关的三道题A了,其实都是一样的。。。 BZOJ2037 [Sdoi2008]Sue的小球 题目大意 中文的。。。 题解 这是论文的例题 直接上原文的讲解吧。。。 把dp数组初始化为... 阅读全文

posted @ 2013-08-21 21:25 仗剑奔走天涯 阅读(536) 评论(0) 推荐(0) 编辑

2013年8月20日

Codeforces2B - The least round way(DP)

摘要: 题目大意 给定一个N*N的格子,每个格子里有一个非负数,要求你找出从左上角到右下角的一条路径,使得它满足路径上的格子里的数全部乘起来的积尾部0最少 题解 如果要产生0肯定是2*5得出来的,最终的乘积可以表示为2^x*5^y*C,那么零的个数就是min(x,y)。我们可以先对每个格子里的数预处理下,计算出2和5的个数来,然后DP分别求出2和5的最小个数然后选两者中的最小值,输出路径方法没啥说的,很传... 阅读全文

posted @ 2013-08-20 21:45 仗剑奔走天涯 阅读(315) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 8 9 ··· 19 下一页

导航