首页 > 其他分享 >CSP 普及 & 提高 考点 模板合集

CSP 普及 & 提高 考点 模板合集

时间:2022-10-20 13:46:28浏览次数:72  
标签:ch 欧拉 int 线段 maxn 模板 合集 CSP dp

CSP 普及 & 提高 考点

零、杂项

加速 cin/coutios::sync_with_stdio(false);。注:放在 main 函数的第一行,但使用它之后不能使用 scanf/printf

避坑/防爆0 指南。

快读:

inline int rd(){
    int x = 1, s = 0; char ch = getchar();
    while(ch < '0' or ch > '9'){if(ch == '-') x = -1; ch = getchar();}
    while(ch >= '0' and ch <= '9') s = s * 10 + ch - '0', ch = getchar();
    return x * s;
}

快写:

inline void wr(int x){
    if(x < 0) putchar('-'), x *= -1;
    if(x > 9) wr(x / 10);
    putchar(x % 10 + '0');
}

一、博弈论

Bash/Wythoff/Nimm Game

二、字符串

KMP

洛谷P3375 【模板】KMP字符串匹配

#include<bits/stdc++.h>
using namespace std;

const int maxn = 1000010;
int kmp[maxn];
int lena, lenb;
char a[maxn], b[maxn];

int main ()
{
    scanf ("%s %s", a + 1, b + 1);
    lena = strlen (a + 1), lenb = strlen (b + 1);
    for (int i = 2, j = 0; i <= lenb; i++)
    {
        while (j and b[i] != b[j + 1]) j = kmp[j];
        if (b[i] == b[j + 1]) j++;
        kmp[i] = j;
    }
    int j = 0;
    for (int i = 1; i <= lena; i++)
    {
        while (j and b[j + 1] != a[i]) j = kmp[j];
        if (b[j + 1] == a[i]) j++;
        if (j == lenb)
        {
            printf ("%d\n", i - lenb + 1);
            j = kmp[j];
        }
    }
    for (int i = 1; i <= lenb; i++) printf ("%d ", kmp[i]);
    return 0;
}

AC自动机

字符串哈希

Trie树(图)

manacher

最小表示法

最短路

spfa (判负环)

dijkstra (堆优化 & 线段树优化)

倍增 floyd

差分约束

Tarjan

强连通分量/缩点

点双边双

割点割边、桥

2-sat

拓扑排序

  • 二分图(最大匹配-匈牙利 & 最大权匹配-KM)
  • 网络流(大概不考,熟悉板子即可)
    • 分数规划(提高考)
  • 欧拉图

  • 最小生成树
    • Kruskal(生成树) & Prim 堆优化
    • (严格)次小生成树
    • 最大生成树
    • 【选】最优比率、最小瓶颈生成树
  • LCA
  • 基环树
  • 树链剖分
  • 括号序列
  • dfs序
  • 树上倍增
  • 树的直径、树的重心

数论

  • 埃氏筛、线性筛
  • 欧拉函数
    • 欧拉定理
    • 线性筛欧拉函数
    • sqrt(n)求单个值的欧拉函数
  • exgcd
    • 求逆元
    • 求同余方程
    • 求 \(ax + by = c\)
  • 中国剩余定理-互质版
  • 矩阵快速幂
  • 容斥原理-Ramsey定理
  • 费马小定理
  • 逆元(线性求、exgcd求、费马小定理求)
  • 高斯消元
  • 线性基
  • 排列组合-杨辉三角
  • 斐波那契数列-\(\gcd(f_n, f_m)=f[\gcd(n,m)]\)
  • 卡特兰数
  • 【选】斯特林数、贝尔数
  • 概率 & 期望

动态规划

  • 简单 dp
  • 背包 dp
    • 01 背包
    • 完全背包
    • 多重背包
  • 区间 dp
  • 状压 dp (普通状压 & 枚举子集 dp)
  • 数位 dp
  • 树形 dp (基环树 dp)
  • 环形 dp
  • 环 + 外向树上的 dp
  • 期望 dp
  • dp 套 dp
  • 优化
    • 【选】四边形不等式
    • 单调队列、线段树

数据结构

  • 带权并查集
  • 哈希表
  • 双向列表
  • st 表
  • 树状数组 (求逆序对 & 多维)
  • 线段树
    • 动态开点 & 线段树的合并
    • 权值线段树
    • 【选】zkw 线段树
    • 二维线段树
    • 主席树 (静态 & 动态 第 \(k\) 大)
    • 扫描线
  • 平衡树 (splay、treap、无旋 treap)
  • trie 树
  • STL((multi)set)

搜索

  • bfs/dfs
  • 双向 bfs

其他算法思想

  • 二分、三分
  • 倍增
  • 贪心
  • 分治
  • 离散化
  • 模拟
  • 排序(重载运算符)
  • 分块
  • (二维)前缀和
  • (压位)高精度
  • 矩阵加速递推
  • 打表

标签:ch,欧拉,int,线段,maxn,模板,合集,CSP,dp
From: https://www.cnblogs.com/gsn531/p/16809568.html

相关文章

  • vue3的学习笔记:MVC、Vue3概要、模板、数据绑定、用Vue3 + element ui 实现购物车案例
    一、前端MVC概要1.1、库与框架的区别框架是一个软件的半成品,在全局范围内给了大的约束。库是工具,在单点上给我们提供功能。框架是依赖库的。Vue是框架而jQuery则是库。......
  • #1369 : 网络流一·Ford-Fulkerson算法 模板题
    ​​http://hihocoder.com/problemset/problem/1369?sid=1108721​​别人都说先学网络流再学二分图,但是我先学了二分图的,感觉网络流好高端啊。首先对于原图,e[u][v],找到一条......
  • python下载站长素材免费简历模板(xpath)
    importos.pathimportrequestsfromlxmlimportetreeif__name__=='__main__':ifnotos.path.exists('./jianli'):os.mkdir('./jianli')he......
  • 包的概念、开发目录规范、常见内置模块知识合集
    包的概念、开发目录规范、常见内置模块知识合集目录包的概念、开发目录规范、常见内置模块知识合集一、包的具体使用二、编程思想的转变三、软件开发目录规范四、常见内置......
  • 模拟赛下饭操作合集
    开场可以对每个题冲\(15\min\),一般简单题\(15\min\)是可以想出来的,一定要利用好每题的\(15\min\)。\(15\min\)确定会的题可以直接写,其他题不要多想直接拼暴力,如果拼......
  • Vue模板是怎样编译的
    这一章我们开始讲模板解析编译:总结来说就是通过compile函数把tamplate解析成renderFunction形式的字符串compiler/index.jsimport{parse}from'./parser/index'imp......
  • P3386 【模板】二分图最大匹配
    #include<bits/stdc++.h>usingnamespacestd;constintN=5e5+4;intn,m;inth[N],to[N*2],nt[N*2],cnt;voidadd(intx,inty){nt[++cnt]=h[x];h[x]=cnt;......
  • P6242 【模板】线段树 3
    题目链接P6242【模板】线段树3【模板】线段树3题目背景本题是线段树维护区间最值操作与区间历史最值的模板。题目描述给出一个长度为\(n\)的数列\(A\),同时定义......
  • 快速缩略模板. ?imageView2/1/w/80/h/80
    通过 imageView2 接口提供常用图片处理模板。开发者根据业务需求,只需在下载URL后面附加相应的参数,就可以生成相应的缩略图。处理图片原图大小不超过32MB、宽高不超过30......
  • 第二十章 CSP Session 管理 - 状态管理
    第二十章CSPSession管理-状态管理状态管理因为HTTP是无状态协议。为Web编写的应用程序必须使用特殊技术来管理应用程序上下文或状态。CSP提供了许多用于状态......