模板 mú bǎn
链式前向星
#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的更多相关文章
- 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领域驱动设计 - 设计文档模板
设计文档模板: 系统背景和定位 业务需求描述 系统用例图 关键业务流程图 领域语言整理,主要是整理领域中的各种术语的定义,名词解释 领域划分(分析出子域.核心域.支撑域) 每个子域的领域模型设计(实体 ...
随机推荐
- c++课程设计之菜单选择
a) 从键盘输入n个数,选择升序还是降序输出 b)创新了日历 c) 添加了射箭游戏 d)还加入了好玩的24点游戏 学生签名: 年 月 日 课程设计(论文)评阅意见 等 级 项 ...
- Python的多线程编程
提到多线程,很多人就会望而却步,本文将由浅入深地带你攻克python多线程编程,并防止你跳入深坑, 首先看一段简单的代码: from time import ctime,sleep def play_ ...
- 高考志愿填报:java 软件 程序员 目前的就业现状
大约在17年前,也就是2000年,学计算机专业的学生可以有大部分都进入本专业,并且就业非常容易.哪怕只会office套件,想找个工作也很简单.那时候学计算机就是最热门的行业. 那时候,搞Java的还是 ...
- html之改变图片透明度而不改变文字的透明度--两种方法实现
图片与图片上的文字设置不同的透明度的两种方法: 第一种方法:背景图+定位+background: url(timg.jpg)no-repeat; <!DOCTYPE html> <h ...
- 如何使用VBS脚本给在直播间授权登陆
直接上代码,看不懂说明你技术不够 set WshShell=WScript.CreateObject("WScript.Shell") Dim ie Set mouse=New S ...
- 不借助第三方网站四步实现手机网站转安卓APP
今天本来是帮朋友查看是否在APP里可以点外链的一个测试,做着做来感觉了,就把这个测试优化了一下.好了我们来进入正题. 工具:Android Studio 第一步:新建项目 第二步:拖入控件(WebVi ...
- AddNewsServlet -servlet处理响应请求
package com.pb.news.web.servlet; import java.io.File;import java.io.IOException;import java.util.Dat ...
- Java自学手记——接口
抽象类 1.当类和对象被abstract修饰符修饰的时候,就变成抽象类或者抽象方法.抽象方法一定要在抽象类中,抽象类不能被创建对象,如果需要使用抽象类中的抽象方法,需要由子类重写抽象类中的方法,然后创 ...
- Arcgis Engine axMapControl1.get_layer(index)中index意义
像 ILayer pLayer = this.axMapControl1.get_Layer(0); 意思是获取axMapControl1中的第一个图层,复制给pLayer.
- 请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: Named Pipes Provider, error: 40 - 无法打开到 SQL Server 的连接)
程序异常,错误信息:在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接. (pro ...