OJ模板库
来源:互联网 发布:recorder.js 编辑:程序博客网 时间:2024/05/22 02:00
最近刷了好几次的oj,好受伤好多都是类似的题目。
最长回文子串
string preprocess(string &str){ string afterProcessStr="#"; for(int i=0;i<str.size();++i) { afterProcessStr += str.substr(i, 1)+"#"; } return afterProcessStr; //afterProcessStr.clear();}int maxpalindrome(string &str){ string afterProcessStr=preprocess(str); // cout<<afterProcessStr<<endl; int maxEdge=0,center=0; int *p=new int[afterProcessStr.size()](); int ans=0; int cur=0; for(int i=1;i<afterProcessStr.size();++i) { p[i]=(maxEdge>i)?min(maxEdge-i,p[2*center-i]):0; while(i-1-p[i]>=0&&i+1+p[i]<afterProcessStr.size()&&afterProcessStr[i+1+p[i]]==afterProcessStr[i-1-p[i]]) ++p[i]; if(i+p[i]>maxEdge) { center=i; maxEdge=i+p[i]; } if(p[i]>ans) ans=p[i]; } return ans;}
注意上文中preprocess函数会花费大量时间最好是采用预分配内存。
static string afterProcessStr(1000002*2,'#');
具体见:http://blog.csdn.net/zhouyelihua/article/details/46964175
最大公约数
经常使用的最大公约数的方法有辗转相除法
/*输入x,y返回x,y的最大公约数*/int gcd(int x,int y){if(x<y) return gcd(y,x);if(0==y) return x;else{ if(0==x&0x1) { if(0==y&0x01) return (gcd(x>>1,y>>1)<<1); else return gcd(x>>1,y); } else { if(0==y&0x01) return gcd(x,y>>1); else return gcd(y,x-y); }}}
0 0
- OJ模板库
- oj类模板
- OJ类模板
- OJ 模板-java
- OJ模板-cpp
- OJ比较大小-类模板
- oj类模板的使用
- OJ嘻唰唰 类模板
- OJ比较大小-类模板
- oj数组模板类Array
- oj模板库(慢慢存储,主要是刚刚开始学习oj。发现身边好多人都有一个很好的模板库)
- 17周 oj 比较大小 类模板
- △【OJ】---Q---比较大小-类模板
- YTU-OJ- 比较大小-类模板
- OJ——比较大小-类模板
- RMQ模板题 南阳oj 119
- sublime text配置刷oj模板
- OJ刷题之《函数模板--求n个数之和》
- Android:不同drawable文件夹的区别
- 黑马程序员----JAVA中的自增(++)和自减(--)运算符
- linux scp命令(主机,服务器间复制文件)
- C#泛型之List操作示例
- secureCRT 查看日志常用命令
- OJ模板库
- HDU 1114
- Java中throws和throw的区别讲解
- 2015_07_20_正式踏入ACM
- Windows/Linux环境下模拟服务端口方法
- 修改任务栏的任务按钮(任务栏标签)的显示宽度
- 将ppt转成pdf合适的转换器
- 程序员的能力拓展模型
- Word Search II