各种模板(part 1)
GCD:
int gcd(int a,int b)
{
return b==?a:gcd(b,a%b);
}
快速幂:
void work(int x,int y) //x^y
{
int ans=;
while(y!=)
{
if(y%==)
ans=ans*x;
y=y/;
x=x*x;
}
}
归并排序:
void work(int l,int r)
{
int i,j,tmp,mid;
if(l+<r)
{
mid=(l+r)/;
tmp=l;
work(l,mid-);
work(mid,r);
for(i=l,j=mid;i<mid&&j<=r;)
{
if(a[i]>a[j])
c[tmp++]=a[j++];
else
c[tmp++]=a[i++];
}
if(j<=r)
for(;j<=r;j++)
c[tmp++]=a[j];
else
for(;i<mid;i++)
a[tmp++]=a[i];
for(i=l;i<=r;i++)
a[i]=c[i];
}
else
{
if(l+==r)
{
if(a[l]>a[r])
{
sawp(a[l],a[r]);
}
}
}
}
二分:
int find(int l;int r)
{
int mid=(l+r)/;
while(l+<r)
{
if(mid==条件) return mid;
if(mid<条件) l=mid;
if(mid>条件) r=mid;
}
if(l==条件) return l;
if(r==条件) return r;
return -;//没有满足条件的
}
静态链表:
struct node //静态链表
{
int v,n;
}a[maxn];
int top;
void cha_ru(int x,int y) //把y查到第x个元素后
{
top++;
a[top].v=y;
a[top].n=a[x].n;
a[x].n=top;
}
void delet(int x) //把x的下一个元素删除
{
a[x].n=a[a[x].n].n;
}
栈:
int q[maxn],top=;
void push(int x)
{
q[++top]=x;
}
int pop()
{
return q[top--];
}
队列:
int q[maxn],tail=,head=;
void push(int x)
{
q[++tail]=x;
}
int pop()
{
return a[++head];
}
二叉树:
struct node //树
{
int v;
int lc,rc;
int id;
int pa;
}a[maxn];
int top=;
int head=;
void qian(int p) //前序遍历
{
if(p==)
return ;
cout<<a[p].v;
qian(a[p].lc);
qian(a[p].rc);
}
void zhong(int p) //中序遍历
{
if(p==)
return ;
zhong(a[p].lc);
cout<<a[p].v;
zhong(a[p].rc);
}
void hou(int p) //后序遍历
{
if(p==)
return ;
hou(a[p].lc);
hou(a[p].rc);
cout<<a[p].v;
}
//树的数组储存
//设有n各节点的树,操作t节点 根节点为1 到n
t.father=t/; //父亲
t.lchild=*t; //左儿子
t.rchild=*t+; //右儿子
t.lbrother=t-; //左兄弟
t.rbrother=t+; //右兄弟
并查集:
using namespace bing_cha_ji //并查集
{
int fa[maxn];
for(int i=;i<=n;i++)
fa[i]=i;
int getfa(int k) //找爹
{
if(fa[k]==k) return k;
fa[k]=get(fa[k]);
return fa[k];
}
void merge(int x,int y) //合并
{
int fx=getfa(x);
int fy=getfa(y);
fa[fx]=fy;
}
bool judge(int x,int y) //判断是否为一个祖先
{
int fx=getfa(x);
int fy=getfa(y);
return fx==fy;
}
}
各种模板(part 1)的更多相关文章
- Jade模板引擎让你飞
写在前面:现在jade改名成pug了 一.安装 npm install jade 二.基本使用 1.简单使用 p hello jade! 渲染后: <p>hello jade!</p ...
- ABP入门系列(2)——通过模板创建MAP版本项目
一.从官网创建模板项目 进入官网下载模板项目 依次按下图选择: 输入验证码开始下载 下载提示: 二.启动项目 使用VS2015打开项目,还原Nuget包: 设置以Web结尾的项目,设置为启动项目: 打 ...
- CMS模板应用调研问卷
截止目前,已经有数十家网站与我们合作,进行了MIP化改造,在搜索结果页也能看到"闪电标"的出现.除了改造方面的问题,MIP项目组被问到最多的就是:我用了wordpress,我用了织 ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
- 【原创分享·微信支付】C# MVC 微信支付之微信模板消息推送
微信支付之微信模板消息推送 今天我要跟大家分享的是“模板消息”的推送,这玩意呢,你说用途嘛,那还是真真的牛逼呐.原因在哪?就是因为它是依赖微信生存的呀,所以他能不 ...
- OpenCV模板匹配算法详解
1 理论介绍 模板匹配是在一幅图像中寻找一个特定目标的方法之一,这种方法的原理非常简单,遍历图像中的每一个可能的位置,比较各处与模板是否“相似”,当相似度足够高时,就认为找到了我们的目标.OpenCV ...
- 前端MVC学习总结(一)——MVC概要与angular概要、模板与数据绑定
一.前端MVC概要 1.1.库与框架的区别 框架是一个软件的半成品,在全局范围内给了大的约束.库是工具,在单点上给我们提供功能.框架是依赖库的.AngularJS是框架而jQuery则是库. 1.2. ...
- ThinkPHP+Smarty模板中截取包含中英文混合的字符串乱码的解决方案
好几天没写博客了,其实有好多需要总结的,因为最近一直在忙着做项目,但是困惑了几天的Smarty模板中截取包含中英文混合的字符串乱码的问题,终于解决了,所以记录下来,需要的朋友看一下: 出现乱码的原因: ...
- ThinkPHP 模板substr的截取字符串函数
ThinkPHP 模板substr的截取字符串函数在Common/function.php加上以下代码 /** ** 截取中文字符串 **/ function msubstr($str, $start ...
- DDD领域驱动设计 - 设计文档模板
设计文档模板: 系统背景和定位 业务需求描述 系统用例图 关键业务流程图 领域语言整理,主要是整理领域中的各种术语的定义,名词解释 领域划分(分析出子域.核心域.支撑域) 每个子域的领域模型设计(实体 ...
随机推荐
- JS中的属性和变量的区别
在很多文章中都说变量其实就是属性,但是它们之间有一定的区别,例如: 在全局作用域下, var a = "hello"; b = "hello"; 从字面上看,它 ...
- linux系统下yum 安装mysql的方法
菜鸟一个,记录下yum 安装mysql的方法,给需要的朋友也做个参考吧. 弄了个新vps,想安装最新版的mysql,网上查了相关资料,记录如下: 1.安装查看有没有安装过: yum ...
- WIN7-64位安装PLSQL-Developer步骤
可参与网址http://tech.ddvip.com/2012-07/1343104017178927.html 以下操作是从网上搜索在64位WIN7测试通过,64位无法使用PL/SQL Develo ...
- Hadoop:输入,输出,key,value格式
map: (K1, V1) → list(K2, V2) reduce: (K2, list(V2)) → list(K3, V3) (K1, V1): jobConf.setInputKeyClas ...
- tcp状态机
tcp共有11种状态,其中涉及到关闭的状态有5 个.这5 个状态相互关联,相互纠缠,而且状态变化触发都是由应用触发,但是又涉及操作系统和网络,所以正确的理解TCP 在关闭时网络状态变化情况,为我们诊断 ...
- iOS学习之设计模式
iOS开发学习中,经常弄不清楚ios的开发模式,今天我们就来进行简单的总结和探讨~ (一)代理模式 应用场景:当一个类的某些功能需要由别的类来实现,但是又不确定具体会是哪个类实现. 优势:解耦合 敏捷 ...
- Node相关参考资料
参考资料: [玩转Nodejs日志管理log4js]http://blog.fens.me/nodejs-log4js/ [dependencies与devDependencies之间的区别]http ...
- 如果需要将UIView的4个角全部都为圆角,做法相当简单,只需设置其Layer的cornerRadius属性即可
如果需要将UIView的4个角全部都为圆角,做法相当简单,只需设置其Layer的cornerRadius属性即可(项目需要使用QuartzCore框架).而若要指定某几个角(小于4)为圆角而别的不变时 ...
- 安装Eclipse环境变量的配置,
window7系统下的 步骤: 第一步:先安装JDK(记住你安装的位置)我安装在D:\Program Files\Java 目录下. 第二步:JDK安装好后,配置环境变量(重 ...
- appium+Python真机运行测试demo的方法
appium+Python真机运行测试demo的方法 一, 打开手机的USB调试模式 二, 连接手机到电脑 将手机用数据线连接到电脑,并授权USB调试模式.查看连接的效果,在cmd下运行命 ...