链式前向星

 #include<string.h>
#define MAX 10000
struct node
{
int to,nex,wei;
}edge[MAX*+];
int head[MAX+],cnt;
void add(int u,int v,int w)//添加一个单向边u->v 权为w
{
edge[cnt].to=v;
edge[cnt].wei=w;
edge[cnt].nex=head[u];
head[u]=cnt++;
}
int main()
{
memset(head,-,sizeof(head));//初始化为-1
cnt=;//初始化 0
}

tarjan

 #include<stack>
#include<algorithm>
#include<string.h>
using namespace std;
stack<int>s;
int dfn[],low[],scc[];//dfn[]时间戳 low[]最浅到达的点的时间戳 scc[]属于第几个scc
int index;//时间戳
int sccnum;//强连通的序号&&数量
void tarjan(int t)
{
dfn[t]=low[t]=++index;//记录时间戳
s.push(t);//入栈
for(int i=head[t];~i;i=edge[i].nex)//遍历儿子
{
int v=edge[i].to;//v是儿子
if(!dfn[v])//如果没走过
{
tarjan(v);//向下递归
low[t]=min(low[t],low[v]);//更新为min(当前,儿子)
}
else if(!scc[v])//如果不在栈中
{
low[t]=min(low[t],dfn[v]);
}
}
if(low[t]==dfn[t])//出栈
{
sccnum++;
while(!s.empty())
{
int x=s.top();
scc[x]=sccnum;
s.pop();
if(x==t)//直到刚刚出去的和现在的一样
break;
}
}
}
int main()
{
index=;
sccnum=;
memset(dfn,,sizeof(dfn));
memset(low,,sizeof(low));
memset(scc,,sizeof(scc));
//初始化
}

LCA

 int dep[MAX+],vis[MAX+],fa[MAX+],f[MAX+][];
int lca(int x,int y){
if(dep[x]<dep[y])
swap(x,y);//x为较深的
for(int i=;i>=;i--)
if(dep[f[x][i]]>=dep[y])
x=f[x][i];
if(x==y)
return x;
for(int i=;i>=;i--)
if(f[x][i]!=f[y][i])
x=f[x][i],y=f[y][i];
return f[x][];
}
void dfs(int t,int d)
{
dep[t]=d;
for(int i=head[t];~i;i=edge[i].nex)
{
int v=edge[i].to;
if(vis[v])continue;
vis[v]=;
fa[v]=t;
dfs(v,d+);
}
}
int main()
{
memset(vis,,sizeof(vis));
memset(f,,sizeof(f));
memset(fa,,sizeof(fa));
}

GCD&LCM

 //最小公倍数 = a*b / 最大公因数
int GCD(int a, int b)
{
return b == ? a : GCD(b, a%b);
}
long long int lcm(long long int a, long long int b)
{
return (a*b / GCD(a, b));
}

快速幂

 #define MOD 1000000007
int ppow(int a, int b)//a^b
{
int ans = , base = a;
while (b)
{
if (b & )
{
ans *= base;
ans %= MOD;
}
base *= base;
base %= MOD;
b >>= ;
}
return ans;
}

大数加法

 string add_string(string s1, string s2)
{
if (s1 == "" && s2 == "") return "";
if (s1 == "") return s2;
if (s2 == "") return s1;
string ans = s1, minn = s2;
if (s1.length() < s2.length()) {
ans = s2;
minn = s1;
}
int a = ans.length() - , b = minn.length() - ;
for (int i = b; i >= ; --i) {
ans[a--] += minn[i] - ''; // a一直在减 , 额外还要减个'0'
}
for (int i = ans.length() - ; i > ; --i) {
if (ans[i] > '') {
ans[i] -= ;//注意这个是减10
ans[i - ]++;
}
}
if (ans[] > '') {
ans[] -= ;
ans = '' + ans;
}
return ans;
}

大数阶乘

 typedef long long LL;
/*
在mult函数中,形参部分:len每次调用函数都会发生改变,n表示每次要乘以的数,最终返回的是结果的长度
tip: 阶乘都是先求之前的(n-1)!来求n!
初始化Init函数很重要,不要落下
*/
int mult(int num[], int len, int n) {
LL tmp = ;
for (LL i = ; i < len; ++i) {
tmp = tmp + num[i] * n; //从最低位开始,等号左边的tmp表示当前位,右边的tmp表示进位(之前进的位)
num[i] = tmp % ; // 保存在对应的数组位置,即去掉进位后的一位数
tmp = tmp / ; // 取整用于再次循环,与n和下一个位置的乘积相加
}
while (tmp) { // 之后的进位处理
num[len++] = tmp % ;
tmp = tmp / ;
}
return len;
}
int calculating(int n,vector<int>&v)
{
const int maxn = ;
int num[maxn], len;
//initialize
len = ;
num[] = ;
//---------
for (int i = ; i <= n; ++i) {
len = mult(num, len, i);
}
for (int i = len - ; i >= ; --i)
{
//printf("%d", num[i]); // 从最高位依次输出,数据比较多采用printf输出
v.push_back(num[i]);
}
return ;
}
int main()
{
int n;
cin >> n;
vector<int>v;
calculating(n,v);
//n的阶乘,输出到v
}

并查集

 int sset[ + ];
int find(int a)//x=find(a) 将x放入a的集合
{
if (sset[a] != a)
{
sset[a] = find(sset[a]);
}
return sset[a];
}
void merge(int a, int b)//合并a,b
{
sset[a] = b;
}

最长上升子序列(LIS)

 int b[];
int LIS(int a[], int n) {
int len = ; b[] = a[];
for (int i = ; i < n; i++) {
b[a[i] > b[len - ] ? len++ : lower_bound(b, b + len, a[i]) - b] = a[i]; //非降换为>=和upper_bound
}
return len;
}

模板 mú bǎn的更多相关文章

  1. Jade模板引擎让你飞

    写在前面:现在jade改名成pug了 一.安装 npm install jade 二.基本使用 1.简单使用 p hello jade! 渲染后: <p>hello jade!</p ...

  2. ABP入门系列(2)——通过模板创建MAP版本项目

    一.从官网创建模板项目 进入官网下载模板项目 依次按下图选择: 输入验证码开始下载 下载提示: 二.启动项目 使用VS2015打开项目,还原Nuget包: 设置以Web结尾的项目,设置为启动项目: 打 ...

  3. CMS模板应用调研问卷

    截止目前,已经有数十家网站与我们合作,进行了MIP化改造,在搜索结果页也能看到"闪电标"的出现.除了改造方面的问题,MIP项目组被问到最多的就是:我用了wordpress,我用了织 ...

  4. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  5. 【原创分享·微信支付】C# MVC 微信支付之微信模板消息推送

    微信支付之微信模板消息推送                    今天我要跟大家分享的是“模板消息”的推送,这玩意呢,你说用途嘛,那还是真真的牛逼呐.原因在哪?就是因为它是依赖微信生存的呀,所以他能不 ...

  6. OpenCV模板匹配算法详解

    1 理论介绍 模板匹配是在一幅图像中寻找一个特定目标的方法之一,这种方法的原理非常简单,遍历图像中的每一个可能的位置,比较各处与模板是否“相似”,当相似度足够高时,就认为找到了我们的目标.OpenCV ...

  7. 前端MVC学习总结(一)——MVC概要与angular概要、模板与数据绑定

    一.前端MVC概要 1.1.库与框架的区别 框架是一个软件的半成品,在全局范围内给了大的约束.库是工具,在单点上给我们提供功能.框架是依赖库的.AngularJS是框架而jQuery则是库. 1.2. ...

  8. ThinkPHP+Smarty模板中截取包含中英文混合的字符串乱码的解决方案

    好几天没写博客了,其实有好多需要总结的,因为最近一直在忙着做项目,但是困惑了几天的Smarty模板中截取包含中英文混合的字符串乱码的问题,终于解决了,所以记录下来,需要的朋友看一下: 出现乱码的原因: ...

  9. ThinkPHP 模板substr的截取字符串函数

    ThinkPHP 模板substr的截取字符串函数在Common/function.php加上以下代码 /** ** 截取中文字符串 **/ function msubstr($str, $start ...

  10. DDD领域驱动设计 - 设计文档模板

    设计文档模板: 系统背景和定位 业务需求描述 系统用例图 关键业务流程图 领域语言整理,主要是整理领域中的各种术语的定义,名词解释 领域划分(分析出子域.核心域.支撑域) 每个子域的领域模型设计(实体 ...

随机推荐

  1. Java中的事件监听机制

    鼠标事件监听机制的三个方面: 1.事件源对象: 事件源对象就是能够产生动作的对象.在Java语言中所有的容器组件和元素组件都是事件监听中的事件源对象.Java中根据事件的动作来区分不同的事件源对象,动 ...

  2. 并归排序 (Java版本,时间复杂度为O(n))

    自己上网查了一下并归排序的定义,把两个排序好的数组重新组成一个排序好的数组就是并归排序, 实现的方式有和多种,自己思考了一下,用java实现了一版本,思路如下,既然是排序好的,只需要依次比较两个数组, ...

  3. PHP中几个输出函数echo,print(),print_r(),sprintf(),var_dump()的区别

    1:echo:是语句不是函数,没有返回值,可输出多个变量值,不需要圆括号.不能输出数组和对象,只能打印简单类型(如int,string). 2:print:是语句不是函数,有返回值 1 ,只能输出一个 ...

  4. Swift三元条件运算

    三元条件运算的特殊在于它是有三个操作数的运算符,它的原型是问题?答案1:答案2.它简洁地表达根据问题成立与否作出二选一的操作.如果问题成立,返回答案1的结果; 如果不成立,返回答案2的结果. 使用三元 ...

  5. [leetcode-500-Keyboard Row]

    Given a List of words, return the words that can be typed using letters of alphabet on only one row' ...

  6. JAVA基础——内部类详解

    JAVA内部类详解 在我的另一篇java三大特性的封装中讲到java内部类的简单概要,这里将详细深入了解java内部类的使用和应用. 我们知道内部类可分为以下几种: 成员内部类 静态内部类 方法内部类 ...

  7. 第二章(jQuery选择器)

    2.1jQuery选择器是什么 1.CSS选择器 选择器 示例 选择器 示例 标签选择器 a{ } p{ } ul{ } ID选择器 #ID{ } 类选择器 .class{ } 群组选择器 td,p, ...

  8. webpack 多页应用架构系列实战

    阅读目录 1.webpack配置了解 2.webpack CommonsChunkPlugin公共代码剥离 3.了解ProvidePlugin的用途 回到顶部 1.webpack配置了解 webpac ...

  9. php 极简框架ES发布(代码总和不到 400 行)

    ES 框架简介 ES 是一款 极简,灵活, 高性能,扩建性强 的php 框架. 未开源之前在商业公司 经历数年,数个高并发网站 实践使用! 框架结构 整个框架核心四个文件,所有文件加起来放在一起总行数 ...

  10. tomcat支持php

    最近做项目遇到了问题,服务器是用的tomcat,而有用到php,就想在tomcat下面可以运行php,步骤如下: 1.下载php压缩包解压或者用wamp/xampp 我下载的是wamp,用的里面的ph ...