随笔分类 - ACM
杭电ACM
KMP算法学习
摘要:一、什么是KMP算法Knuth-Morris-Pratt字符串查找算法(常简称为 “KMP算法”)是在一个“主文本字符串”S内查找一个“词”W的出现,,以此避免对以前匹配过的字符重新检查。(在原串中匹配模式串)二、KMP演示http://staff.ustc.edu.cn/~ypb/jpkc/fla...
阅读全文
A - Oulipo
摘要:A - Oulipo Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64uSubmit StatusDescriptionThe French author Georges Perec (1936–1982) onc...
阅读全文
KMP算法
摘要:KMP算法在介绍KMP算法之前,先介绍一下BF算法。一.BF算法 BF算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串P的第一个字符进行匹配,若相等,则继续比较S的第二个字符和P的第二个字符;若不相等,则比较S的第二个字符和P的第一个字符,依次比较下去,直到得出最后的匹配结...
阅读全文
树状数组
摘要:昨天学了一下树状数组,随笔都写了一大半,结果一个不小心就把他给删了,哎。。。。。。今天就当是复习吧!再写一次。 如果给定一个数组,要你求里面所有数的和,一般都会想到累加。但是当那个数组很大的时候,累加就显得太耗时了,时间复杂度为O(n),并且采用累加的方法 还有一个局限,那就是,当修改掉数组中的元素...
阅读全文
c语言 while (~scanf("%d%d",&n,&m)) 在这里这个符号“~”是什么意思
摘要:按位取反,简单地说就是二进制1变0,0变1由于scanf是有返回值的,且返回值为int型特别的此处用法导致只有scanf返回-1,循环才会结束,也就是要返回EOF while (~scanf("%d%d",&n,&m))等效于 while (scanf("%d%d",&n,&m)!=EOF)
阅读全文
LCA算法
摘要:LCA算法:LCA(Least Common Ancestor),顾名思义,是指在一棵树中,距离两个点最近的两者的公共节点。也就是说,在两个点通往根的道路上,肯定会有公共的节点,我们就是要求找到公共的节点中,深度尽量深的点。还可以表示成另一种说法,就是如果把树看成是一个图,这找到这两个点中的最短距离...
阅读全文
F - Coins
摘要:F - Coins Time Limit:3000MS Memory Limit:30000KB 64bit IO Format:%I64d & %I64uSubmit Status Practice POJ 1742Description People in Silverland use coin...
阅读全文
F - Coins
摘要:F - Coins Time Limit:3000MS Memory Limit:30000KB 64bit IO Format:%I64d & %I64uSubmit StatusDescription People in Silverland use coins.They have coins ...
阅读全文
K - 最少拦截系统
摘要:Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不 能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹. 怎么...
阅读全文
I-Keyboard
摘要:SPOJ Problem Set (classical) 14. I-Keyboard Problem code: IKEYBMost of you have probably tried to type anSMS message on the keypad of acellular phone....
阅读全文
卡特兰数
摘要:什么是Catalan数说到Catalan数,就不得不提及Catalan序列,Catalan序列是一个整数序列,其通项公式是我们从中取出的就 叫做第n个Catalan数,前几个Catalan数是:1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 5878...
阅读全文
Business Cards
摘要:Problem DescriptionRunning a paper shop is not an easy job, especially with harsh customers. Today they brought their own rectangular sheets of paper,...
阅读全文
用矩阵幂求解线性递推序列
摘要:在上一篇文章中我们探讨了如何快速求解幂运算的方法,并且最终给出了一个时间复杂度为O(logn)的算法,那么在这一片文章中,我想说一说快速幂运算的一个应用,也就是利用矩阵的快速幂运算求解线性递推序列。首先我们来了解下什么是线性递推序列,在这里给大家看一个大家一定很熟悉例子,那就是斐波那契数列,它的递推...
阅读全文
快速幂运算
摘要:最近看到的一些题里有利用快速矩阵幂来求快速解递归函数(比如Fibonacci数列),在很久之前看和RSA算法里也涉及到了快速求幂的算法,所以今天就想一块来介绍一下。在介绍开始之前,先对本文的算法做一个声明,下文所提到的幂运算的指数n,满足条件n >= 0,这一点非常重要。首先幂运算,大家其实都很好理...
阅读全文
求解1^2+2^2+3^2+4^2+...+n^2的方法(求解1平方加2平方加3平方...加n平方的和)
摘要:利用公式 (n-1)3 = n3 -3n2 +3n-1设 S3 = 13 +23 +33 +43 +...+n3及S2 = 12 +22 +32 +42 +...+n2及 S1 = 1 +2 +3 +4+...+n得:S3-3S2+3S1-n = (1-1)3 + (2-1)3+ (3-1)3 + (4-1)3 + ... + (n-1)3 =S3 -n3 所以, 3S2 = 3S1+n3 -n把 S1= n(n+1)/2 带入上式, 可得:S2 = n(n+1)(2n+1)/6即:12 +22 +32 +42 +...+n2 = n(n+1)(2n+1)/6可以设想,用同样的方法,可以利用.
阅读全文
2013多校联合3 G The Unsolvable Problem(hdu 4627)
摘要:2013-07-30 20:35 388人阅读 评论(0) 收藏 举报http://acm.hdu.edu.cn/showproblem.php?pid=4627The Unsolvable ProblemTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 230Accepted Submission(s): 136Problem DescriptionThere are many unsolvable problem in the world.I
阅读全文
整数对
摘要:Problem Description Gardon和小希玩了一个游戏,Gardon随便想了一个数A(首位不能为0),把它去掉一个数字以后得到另外一个数B,他把A和B的和N告诉了小希, 让小希猜想他原来想的数字。不过为了公平起见,如果小希回答的数虽然不是A,但同样能达到那个条件(去掉其中的一个数字得到B,A和B之和是N),一样算 小希胜利。而且小希如果能答出多个符合条件的数字,就可以得到额外的糖果。 所以现在小希希望你编写一个程序,来帮助她找到尽可能多的解。 例如,Gardon想的是A=31,B=3 告诉小希N=34, 小希除了回答31以外还可以回答27(27+7=34)所以小希可以因此而得到
阅读全文
免费馅饼
摘要:Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 21713Accepted Submission(s): 7319Problem Description都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼。说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内。馅饼如果掉在了地上当然就不能吃了,所以gameboy马上卸下身上的背包去接。但由于小径两侧都不能站人,所以他只能在小径上
阅读全文
Necklace
摘要:Time Limit: 4000/2000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 1553Accepted Submission(s): 453Problem DescriptionYou are given a necklace consists of N beads linked as a circle. Each bead is either crystal or jade.Now, your task is:1.Choose an arbitrary position
阅读全文
单调队列
摘要:单调队列,顾名思义就是具有单调性的队列O(∩_∩)O~,一般的队列只能从队尾入队、队首出队;为了保持单调队列的单调性,单调队列除具有这两种性质外,还可以从队尾出队。以单增的单调队列为例,当元素t要入队时,先要从队尾依次弹出所有>=t的元素,再将t加在队尾。举个例子,如果序列:1 3 -1 -3 10要构成单调队列,先将元素“1”放入队列中,以初始化队列,接着元素“3”要入队,队尾元素“1”比“3”小,因此“3”可以直接入队,队列变为1 3,接着“-1”要入队,从队尾依次弹出元素“3”“1”后将“-1”入队,队列变为-1,同理“-3”入队后,队列变为-3,“10”入队后,队列变为-3 10
阅读全文