POJ 2774 Long Lon…

题目链接:http://poj.org/problem?id=2774 给出两个长度均不大于100000的字符串 求出这两个字符串的最长公共子串。 #include #include #include const int N=100005*2; int suff[N],r[N],Height[N],rank[N]; int wa[N],cnt[N],wb[N],wv[N]; i...
阅读(164) 评论(0)

POJ 1743 Musical Theme[后缀数组]

题目链接:http://poj.org/problem?id=1743 题目大意 给定一段音乐乐谱,其中的音符用数字表示出来( 范围 [ 1,88 ] ),要求的是这段乐谱的主旋律。所谓的主旋律,就是满足以下三点要求的一段子串:   1、音符的数目至少为5;   2、重复出现在乐谱中的另一个地方;   3、不相互叠加; 先二分答案,把题目变成判定性问题:判断是否存在两个长度为k 的子串是相同的...
阅读(170) 评论(0)

POJ 3261 Milk Patterns[后缀数组]

题目链接:http://poj.org/problem?id=3261 题意:N头牛,每头牛有一个编号,求可重叠的“至少”出现K次的“最大子串”。 思路: 后缀数组+二分。 二分答案,然后将后缀分成若干组。不同的是,这里要判断的是有没有一个组的后缀个数不小于k。如果有,那么存在k 个相同的子串满足条件,否则不存在。这个做法的时间复杂度为O(nlogn)。 代码:   #include ...
阅读(190) 评论(0)

HDOJ 1316 How Many Fibs?

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1316 #include #include #include using namespace std; const int Max=2001; char f[Max][Max]={"1","1","2"}; char tmp[Max],str1[Max],str2[Max]; void set(cha...
阅读(210) 评论(0)

HDOJ 1316 2^x mod n = 1

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1395 题目注意一下n小于等于1的处理…… #include #include using namespace std; //蒙哥马利快速幂 int Montgomery(__int64 a,int b,int c){     __int64 ans=1;     while(b){         i...
阅读(222) 评论(0)

快速幂取模运算

1.模取运算的性质 (1)(a+b)%c = ((a%c)+(b%c))%c (2)(a*b)%c = ((a%c)*b)%c 2.快速幂乘计算a^b (1)a,b都为正数,将b二进制化 (2)时间复杂度为logb,乘法次数不是最少的 __int64 power = 1; while(b > 0){     if(b&1) power *= a;     a *= a;     b >...
阅读(240) 评论(0)

POJ 2406 Power St…

#include #include const int N = 1000000+10; char str[N]; int next[N]; int len; void GetNext1(char str[N],int next[N])//寻找模式串的粗略next {     int l=strlen(str);     next[0]=-1;     int i=0,j=-1;     while...
阅读(208) 评论(0)

【转载】C语言中scanf格式化输入函…

scanf函数,与printf函数一样,都被定义在stdio.h里,因此在使用scanf函数时要加上#include。它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中,其关键字最末一个字母f即为“格式”(format)之意。 [编辑本段]scanf函数的一般形式   scanf(格式控制,地址表列)   int scanf(char *format[,argume...
阅读(219) 评论(0)

HDOJ 1242   Rescue

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1242 代码: #include #include #include #include #include using namespace std; const int MAXN=200; const int INF=10000000; typedef struct points{     int x,...
阅读(193) 评论(0)

HDOJ 4278  Faulty Odometer

题目:http://acm.hdu.edu.cn/showproblem.php?pid=4278 题目意思为:有一个里程表没有3,8这两个数字0,1,2,4,5,6,8,9这八个数字构成一个循环(一个八进制)但数字的顺序不一样,先将给定的数字转化为实际的数字(八进制),再将八进制转化为十进制 代码: #include #include using namespace std; int main...
阅读(197) 评论(0)

POJ 2364 Balanced Lineup

转载:http://blog.csdn.net/niushuai666/article/details/7401403 题目链接:http://poj.org/problem?id=3264 题目大意: 一个农夫有N头牛,每头牛的高度不同,我们需要找出最高的牛和最低的牛的高度差。 解题思路: 我是用RMQ写的。 N为50000,Q为200000,如果我们暴力的话,需要50000*200000=1...
阅读(221) 评论(0)

转载用ST的RMQ算法

转载:http://blog.csdn.net/niushuai666/article/details/6624672 1. 概述 RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j当然,该问题也可以用线段树(也叫区间树)解决,算法复杂度为:O(N)~O(logN),这里我们暂不介绍...
阅读(191) 评论(0)

字典树

字典树,又称单词查找树,Trie树,是一种树形结构,典型应用是用于统计,排序和保存大量的字符串,所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来节约存储空间,最大限度的减少无谓的字符串比较,查询效率比哈希表高。 它有三个基本性质,根节点不包含字符,除根节点外每一个节点都只包含一个字符,从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串,每个节点的所有子节点...
阅读(261) 评论(0)

KMP字符串模式匹配详解

KMP字符串模式匹配详解 KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法。简单匹配算法的时间复杂度为O(m*n);KMP匹配算法。可以证明它的时间复杂度为O(m+n).。 一.  简单匹配算法 一个普通匹配算法的函数: int Index_BF ( char S [ ], char T [ ], int pos ) { int i = pos, j = 0; whi...
阅读(196) 评论(0)

HDOJ  4341  Gold miner[条件背包]

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4341 题目解析:给定时间让你求出能获得到的最大价值,对于每一次 显然,必须先拿走前面的金子才能拿后边的,所以排序处理共线情况。 然后进行背包即可,,,,,, 『将直线前面的视作一个背包,将前面和后面合在一起视作一个背包,然后就简化为01背包问题』 题解报告代码: #include #include #...
阅读(211) 评论(0)
347条 共24页首页 上一页 ... 6 7 8 9 10 ... 下一页 尾页
    个人资料
    • 访问:211730次
    • 积分:3102
    • 等级:
    • 排名:第11599名
    • 原创:319篇
    • 转载:17篇
    • 译文:10篇
    • 评论:29条
    博客专栏
    最新评论