《题目与解读》
asdfgh0308
这个作者很懒,什么都没留下…
展开
-
poj3167 Cow Patterns KMP、树状数组
最近的日子被考试压得喘不过气来,说好的每天水两道题又荒废了。。。 为了让写解题报告和看解题报告不那么无聊,我决定从这篇起每篇加几句心得或感慨(很大几率是废话): 数据结构是好东西,必须信手拈来,或者准备好模块,熟练得像std::sort那样,才能克服一些稍显复杂的堆砌算法的题目。 另外,KMP是神奇的算法。 poj3167 KMP&树状数组。 这题要求第一串中间是否有与原创 2013-06-03 13:09:35 · 805 阅读 · 0 评论 -
poj3415 Common Substrings,后缀数组、单调栈
poj3415 后缀数组+单调栈 后缀数组真是博大精深……呃,其实也很浅,翻来覆去也就几种题目,都出烂了所以比赛都见不到了。。 但是把后缀数组模板用熟练还是很重要,万一它真出了呢。。 这题要统计串s1、s2中这样的三元组{i,j,k},(s1[i..i+1-k]等于s2[j..j+1-k],k>=K) 统计这样的三元组有多少个。 换一种说法就是对于所有的i,j,求sum{lcp(原创 2013-06-11 17:17:33 · 778 阅读 · 0 评论 -
zoj3299 Fall the Brick map 离散化
正在缓慢地学习交大的《题目与解读》这本书,里面很多题目都是很有意思的。 zoj3299 Fall the Brick。 给一些条状的方块,和一些水平的board,求每个board上有多少个单位方块。单位方块长度为1,会落在该位置最高的一个board上。 比较直观的是线段树的解法吧。 书里写到了用map的做法。 其实这种离散化后用(l,1),(r,-1)的事件来处理大范围坐标的题目也见原创 2013-05-16 23:52:46 · 724 阅读 · 0 评论 -
ural 1667 Square Country 3,构造
今天学习了一个巧妙的构造题目:ural 1667 Square Country 3 要求构造一个矩阵满足元素不重复而且每个元素、每行的和、每列的和都是完全平方数。 做法是随机构造第一行b[1..m]和第一列a[1..n],然后矩阵c[i][j]=a[i]*b[j],这样是满足条件的。 不过为什么随机构造能够很快出解我还不会证明,希望有爱的同学补上。。 #include #i原创 2013-06-13 18:40:33 · 756 阅读 · 0 评论 -
sgu 465 Fire Station Building 三分
sgu 465 Fire Station Building 三分 sgu题目虽然不多,但是题题经典,数据也是很给力的。。 本题,最短路处理后在每条边上三分。 写完后在testcase5 WA了无数次。可恶的tricky。也提醒自己要小心啊。。比赛这样就完了。 谁能给个本题三分正确性的证明? #include #include using namespace std原创 2013-06-14 16:43:16 · 985 阅读 · 0 评论 -
poj1625 Censored! AC自动机DP、高精度
poj1625 Censored! AC自动机DP、高精度 这是AC自动机的经典题目了吧。 嗯,难度不大,就是代码长而已。。 poj的数据一如既往地奇葩,会有大于128的字符,读入变负,需要处理一下。 结果最大是50^50,大概是10^85,高精度的长度可以计算一下。 #include #include #include using namespace std; #def原创 2013-06-13 21:14:14 · 615 阅读 · 0 评论 -
zoj3296 Connecting the Segments,后缀数组、dp
zoj3296 Connecting the Segments,后缀数组、dp 又是后缀数组。。嗯 求一个串最少能由几个回文串拼成。这里的拼接可以相互覆盖。 其实思路不难。先求出串中有哪些是回文串,然后就是经典的DP问题了,大家都应该懂的。 不过回文串最差可能有O(len^2)个。 思考一下,有一个重要的结论,如果一个回文串被另一个包含,那么这一个回文串是没有意义的,因为原创 2013-06-11 17:22:16 · 687 阅读 · 0 评论