邝斌的ACM模板..docx

  1. 1、本文档共201页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
邝斌的ACM模板.

字符串处理31、KMP 算法32、扩展 KMP53、Manacher 最长回文子串64、AC 自动机65、后缀数组86、后缀自动机107、字符串 HASH12数学121、素数122、素数筛选和合数分解143、扩展欧几里得算法(求 ax+by=gcd 的解以及逆元素)154、求逆元155、模线性方程组156、随机素数测试和大数分解(POJ 1811)167、欧拉函数188、高斯消元(浮点数)199、FFT1910、高斯消元法求方程组的解2111、 整数拆分2512、求 A^B 的约数之和对 MOD 取模2613、莫比乌斯反演2714、Baby-Step Giant-Step2815、自适应 simpson 积分29相关公式29数据结构301、划分树302、RMQ313、树链剖分324、伸展树(splay tree)365、动态树396、主席树427、Treap50图论531、最短路532、最小生成树553、次小生成树564、有向图的强连通分量575、图的割点、桥和双连通分支的基本概念596、割点与桥597、边双连通分支618、点双连通分支639、最小树形图6510、二分图匹配6611、生成树计数6911、二分图多重匹配7112、KM 算法(二分图最大权匹配)7113、最大流7314、最小费用最大流7615、2-SAT7716、曼哈顿最小生成树8117、一般图匹配带花树8318、LCA8419、欧拉路89计算几何931、基本函数932、凸包1383、平面最近点对(HDU 1007)1394、旋转卡壳1405、半平面交1466、三点求圆心坐标(三角形外心)1497、求两圆相交的面积1508、Pick 公式150动态规划1501、最长上升子序列 O(nlogn)150搜索1511、Dancing Links151其他1561、高精度1562、完全高精度1583、strtok 和 sscanf 结合输入1634、解决爆栈,手动加栈1635、STL1636、输入输出外挂1657、莫队算法1668、VIM 配置172改版者言:此版本是由2013-11-8月上传的pdf文档改版的。非2013-9-27版本的改版。做了写简单处理内部代码没动过但是:本文的格式发生改动部分文字的格式出现问题一些表达式已无法辨认代码中少量大括号错位目录无法正常使用,字符串处理1、KMP 算法/** next[]的含义:x[i-next[i]...i-1]=x[0...next[i]-1]* next[i]为满足x[i-z...i-1]=x[0...z-1]的最大z值(就是x的自身匹配)*/void kmp_pre(char x[],int m,int next[]){int i,j; j=next[0]=-1; i=0;while(i<m){while(-1!=j && x[i]!=x[j])j=next[j]; next[++i]=++j;}}/** kmpNext[]的意思:next'[i]=next[next[...[next[i]]]] (直到next'[i]<0或者x[next'[i]]!=x[i])* 这样的预处理可以快一些*/void preKMP(char x[],int m,int kmpNext[]){int i,j; j=kmpNext[0]=-1; i=0;while(i<m){while(-1!=j && x[i]!=x[j])j=kmpNext[j]; if(x[++i]==x[++j])kmpNext[i]=kmpNext[j]; else kmpNext[i]=j;}}/** 返回x在y中出现的次数,可以重叠*/int next[10010];int KMP_Count(char x[],int m,char y[],int n){//x是模式串,y是主串int i,j;int ans=0;//preKMP(x,m,next); kmp_pre(x,m,next); i=j=0;while(i<n){while(-1!=j && y[i]!=x[j])j=next[j]; i++;j++;if(j>=m){ans++; j=next[j];}}return ans;}经典题目:POJ 3167/** POJ 3167 Cow Patterns* 模式串可以浮动的模式匹配问题* 给出模式串的相对大小,需要找出模式串匹配次数和位置* 比如说模式串:1,4,4,2,3,1 而主串:5,6,2,10,10,7,3,2,9* 那么2,10,10,7,3,2就是匹配的** 统计比当前数小,和于当前数相等的,然后进行kmp*/#include <iostream>#include <stdio.h>#include <string.h>#inclu

文档评论(0)

cjbckk + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档