OJ模板库
近期刷了好几次的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);
}
}
}OJ模板库的更多相关文章
- STL标准模板库(简介)
标准模板库(STL,Standard Template Library)是C++标准库的重要组成部分,包含了诸多在计算机科学领域里所常见的基本数据结构和基本算法,为广大C++程序员提供了一个可扩展的应 ...
- c++转载系列 std::vector模板库用法介绍
来源:http://blog.csdn.net/phoebin/article/details/3864590 介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作 ...
- Handlebars模板库浅析
Handlebars模板库简单介绍 Handlebars是JavaScript一个语义模板库,通过对view(模板)和data(ajax请求的数据,一般是json)的分离来快速构建Web模板.它采用& ...
- 【转】C++标准库和标准模板库
C++强大的功能来源于其丰富的类库及库函数资源.C++标准库的内容总共在50个标准头文件中定义.在C++开发中,要尽可能地利用标准库完成.这样做的直接好处包括:(1)成本:已经作为标准提供,何苦再花费 ...
- STL标准模板库介绍
1. STL介绍 标准模板库STL是当今每个从事C++编程的人需要掌握的技术,所有很有必要总结下 本文将介绍STL并探讨它的三个主要概念:容器.迭代器.算法. STL的最大特点就是: 数据结构和算法的 ...
- c++模板库(简介)
目 录 STL 简介 ......................................................................................... ...
- 【c++】标准模板库STL入门简介与常见用法
一.STL简介 1.什么是STL STL(Standard Template Library)标准模板库,主要由容器.迭代器.算法.函数对象.内存分配器和适配器六大部分组成.STL已是标准C++的一部 ...
- C++——string类和标准模板库
一.string类 1.构造函数 string实际上是basic_string<char>的一个typedef,同时省略了与内存管理相关的参数.size_type是一个依赖于实现的整型,是 ...
- STL 简介,标准模板库
这篇文章是关于C++语言的一个新的扩展--标准模板库的(Standard Template Library),也叫STL. 当我第一次打算写一篇关于STL的文章的时候,我不得不承认我当时低估了这个话 ...
随机推荐
- Linux与Windows远程互访(使用Rdesktop与SSH)
工作的时候经常使用Redhat系列系统,而平常娱乐文档都是在windows平台上进行.因此实现linux与windows远程互访也是很有必要的事情. 本文将介绍如何实现Linux与Windows的远程 ...
- delete void pointer
delete void pointer是否会有内存泄漏? 看下面一个简单例子 class Test{ public: Test(){ printf ("constructor\n" ...
- Slickflow.NET 开源工作流引擎高级开发(四) -- 硬核编码:代码式快速构建流程图
前言:通过设计器交互来创建流程图是比较常见的方式,这种方式是比较方便业务人员对流程的操作.然而,在需要流程模板,或者技术开发阶段以及一些自动化流程的处理过程中,使用代码快速创建流程图也是一种非常有必要 ...
- Weekly linux and ConferenceByYear(2002-now)
https://lwn.net/Archives/ https://lwn.net/Archives/ConferenceByYear/
- swap文件查看
建议 Swap 使用单独的分区: a swap file a combination of swap partitions and swap files. Swap 大小的计算公式: M 等于物理内存 ...
- delphi CreateAnonymousThread 匿名线程
引用 http://www.cnblogs.com/del/archive/2011/05/18/2049913.html 先看一个非多线程的例子, 代码执行时不能进行其它操作(譬如拖动窗体): { ...
- Odoo(OpenERP)配置文件openerp-server.conf详解
原文地址:http://blog.csdn.net/wangnan537/article/details/42283465 [options] ; addons模块的查找路径 addons_path ...
- 【python】python安装步骤
1.官网下载python 官网地址:https://www.python.org/getit/ 2.下载完成后点击安装 勾选Add python to PATH 是可以自己去配置环境变量的 注意:这里 ...
- Android 用户登录界面
本篇博客主要给大家演示怎样一步一步地创建一个类似于下图展示的这么一个UI界面: 一.准备图片资源 记住:因为Demo其中用到的图片资源都是直接从上面图片截取的,所以图片质量上面会差一些,只是.不影响我 ...
- mongodb常用查询
mongo sql 说明 db.users.find() select * from users 从user表中查询所有数据 db.users.find({“username” : “joe”, “a ...