Study

· · 个人记录

自用

好文

骗分导论:)

常数优化技巧

打表

LATEX使用

LATEX公式

makedown使用

memset 赋值

memset 不同类型赋值

模板

模板题总结

卡常

ACM卡常数

html

人工智能

背包九讲

一个人的成功不是没有理由的!(人物之楼天城)

NOIP考点总结

【个人网络整理】NOIP / 省选 /NOI 知识点汇总

好用的工具

OI Wiki

对拍

VJugde

夜深人静写算法

妈妈再也不用担心我手残

图形计算器

图论

图论总结

luogu日报

Dijkstra

Bellman-Ford

spfa

Kruskal

Floyd判断连通性

最小生成树

差分约束系统

带权并查集

tarjan强连通分量

缩点

割点

割点 桥 双连通分量

双连通分量(点双+边双)

网络流

Edmonds_Karp

Dinic

ISAP

Dinic (写得很好)

ISAP & HLPP (写得很好)

最大权闭合子图

LCA(tarjan)

LCA

倍增

哈密尔顿回路

k短路

二分图基础知识

二分图

二分图匹配

匈牙利算法

KM算法(二分图最大权完美匹配)

字符串

字符串hash

BKDRHash

KMP

KMP

KMP

Horspool(字符串匹配)算法

Boyer-Moore算法

Trie树

可持久化Trie树

AC自动机

AC自动机图解

后缀数组 倍增

后缀数组图解

manacher算法 O(n) 回文串长度

dp

树形dp

树形背包dp

多叉树转二叉树 背包dp

泛化背包

数位dp (看不懂)

数位dp

数位dp 洛谷日报

悬线法

悬线法模板

单调队列优化dp

斜率优化dp

数论

欧拉函数

矩阵构造

辗转相减/除法 gcd

素数

逆元

约数 质数 扩欧 逆元

矩阵乘法

高斯消元

单纯形

单纯形

矩阵 秩 逆矩阵

逆矩阵

线性基

期望

概率和期望

组合数

博弈论

博弈论 Nim

数据结构

线段树与树状数组

树状数组

树状数组求逆序对

高级树状数组 区间修改+求和 二维 (超良心)

线段树 luogu日报

权值线段树

Kruskal重构树

分块

luogu日报 分块

浅谈分块——入门

分块题步骤

Treap平衡树

Treap模板

Splay树

静态主席树

AVL树(平衡二叉树)

平衡二叉树

其他

cdq分治 luogu日报

cdq分治

dp滚动数组

priority_queue

单调队列

0/1 分数规划详解

0/1分数规划 详解

运算符重载

stringstream

string::npos

system函数

莫队2

迭代加深搜索 IDA

Fibonacci性质 ...

双流水线调度问题以及Jhonson算法

博弈论

扫描线

压位高精

差分

距离

题解

P1156 垃圾陷阱

背包的在线与离线 刷表与填表

P1379 八数码(太厉害一道题)

八数码 A*

八数码 双向bfs

八数码 康托展开

八数码 迭代加深

Tips:

  1. 定义结构体后要打分号!

    eg.

      struct node{
          int dis,pos;
          bool operator <(const node &x) const{
              return dis>x.dis;
          }
      };                        // 
      priority_queue<node> q;
  2. 减法代替取模 卡常

    ll mo(ll x,ll y){return x+y>=mod?x+y-mod:x+y;}
  3. 树的dep从0开始还是从1开始

  4. 贪心不行就转dp

  5. 取模题输出时记得取模

  6. 枚举s子集

    for(int i=s;i;i=(i-1)&s)
  7. 离散化模板

    il void lsh(){
        sort(book+1,book+cnt+1);
        for(re int i=1;i<=cnt;++i)
            if(i==1||book[i]!=book[i-1]) b[++m]=book[i];
    }
    il int query(int x){   //原数->离散化后数 
        return lower_bound(b+1,b+m+1,x)-b;
    }
  8. int范围 1e9

  9. 关于空间

一般数组不要开超过100M

一般int不要开过两千万,尽量不要用string作为递归参数

100w int -> 4M

  1. 多组数据时特判情况不要return 0!!!

  2. 快写记得打 ' '和 '\n'

  3. swap

    int swap(int &x, int &y){ x ^= y ^= x ^= y ;}
  4. reserve 预订,保留 reverse 颠倒

  5. sort(start,end,cmp)

start数组开始地址,end表示数组结束地址的下一位 [srart,end)

15.

  ```cpp
  有多个[]的一定要看仔细(编译器的[]配对有时候会抽风) 
  eg. s[q[l+1]]-s[q[l]] 
  不是s[q[l+1]-s[q[l]]]
  ```
  1. 写单调队列时除了 l , r 指针的移动和值的更新以外,别忘了入队

↑⇓

大计基

计算机加电启动

从有限状态机、图灵机到现代计算机

N-S图

其他

Python-turtle库

Python-海龟绘图

Arduino 蜂鸣器音乐

旋度

格林公式的几何意义

傅里叶级数