随笔分类 -  模板

摘要:HDU - 6642 使用范围: 求k个不相交的子序列最大值之和。 用法: 开k个map, 每次对于新的一个v,我们插入 v 个 v 到第一层中。 插入方式: 1.如果没有数比这个v大, 我们就直接将v放入到该层。 2.否则大于v的最小的数x,用v来替换x,将x插入下一层。 因为不能一个一个插入,所 阅读全文
posted @ 2019-08-13 16:17 Schenker 阅读(359) 评论(0) 推荐(0)
摘要:1.HDU-3572 题意:N个任务,每个任务有Pi(需要干多少天),Si(开始时间),Ei(结束时间),M个机器,一个机器一天最多处理一个任务,询问是否所有的任务都能完成。 建图模型: s 向 [1, 500]天开始建立一条流量为m的边,然后对于每天来说,往可以去执行任务的点建立一条流量为1的边, 阅读全文
posted @ 2019-08-04 20:46 Schenker 阅读(241) 评论(0) 推荐(0)
摘要:笛卡尔树 O(n)建立一颗该节点是当前子树的最值的二叉树. 代码: void Build(){ int n; scanf("%d", &n); for(int i = 1; i <= n; ++i) scanf("%d", &a[i]), L[i] = R[i] = 0; top = 0; for( 阅读全文
posted @ 2019-07-28 20:39 Schenker 阅读(172) 评论(0) 推荐(0)
摘要:#include<bits/stdc++.h> using namespace std; const int N = 110010; char str[N], aim[N<<1]; int n; int len[N*2]; void manacher() { memset(len, 0, sizeo 阅读全文
posted @ 2019-07-15 19:51 Schenker 阅读(175) 评论(0) 推荐(0)
摘要:1. 旋转treap。 思想:一颗权值BST + 一颗 随机数 最小堆。 BZOJ - 3224 代码: #include<bits/stdc++.h> using namespace std; #define Fopen freopen("_in.txt","r",stdin); freopen( 阅读全文
posted @ 2019-07-06 13:17 Schenker 阅读(217) 评论(0) 推荐(0)
摘要:代码: int e[50][50]; int cnt[N], group[N], sta[N], ans; int n; bool dfs(int u, int deep){ for(int i = u + 1; i <= n; ++i){ if(cnt[i] + deep <= ans) retu 阅读全文
posted @ 2019-05-24 09:47 Schenker 阅读(159) 评论(0) 推荐(0)
摘要:int Log[N]; struct ST { int dp[N][20], a[N]; void init(int n) { for(int i = -(Log[0]=-1); i < N; i++) Log[i] = Log[i - 1] + ((i & (i - 1)) == 0); for( 阅读全文
posted @ 2019-05-08 22:01 Schenker 阅读(121) 评论(0) 推荐(0)
摘要:1. kmp 相当于往前求出一段字符信息,使得 这段字符信息和前缀相等。 void getnext(){ int k = -1, j = 0; nx[0] = -1; while(j < m){ if(k == -1 || b[j] == b[k]) nx[++j] = ++k; else k = 阅读全文
posted @ 2019-05-02 16:26 Schenker 阅读(259) 评论(0) 推荐(0)
摘要:#include<bits/stdc++.h> using namespace std; #define Fopen freopen("_in.txt","r",stdin); freopen("_out.txt","w",stdout); #define LL long long #define 阅读全文
posted @ 2019-04-23 17:01 Schenker 阅读(290) 评论(0) 推荐(0)
摘要:const int N = 500; const int M = 1e5; int head[N], to[M], nt[M], link[M], tot; int vis[N]; int Vcnt; int n, m; void add(int u, int v){ to[tot] = v; nt 阅读全文
posted @ 2019-04-14 17:39 Schenker 阅读(192) 评论(0) 推荐(0)
摘要:从杨哥哪里偷的板子, 存一下。 #include<bits/stdc++.h> using namespace std; #define Fopen freopen("_in.txt","r",stdin); freopen("_out.txt","w",stdout); #define LL lo 阅读全文
posted @ 2019-03-02 13:50 Schenker 阅读(279) 评论(0) 推荐(0)
摘要:已封装: class Left_Heap{ public: static const int Mn = N; int ls[Mn], rs[Mn], rt[Mn], val[Mn], pos[Mn], dis[Mn]; int n; void init(){ for(int i = 1; i <= 阅读全文
posted @ 2019-03-01 17:28 Schenker 阅读(123) 评论(0) 推荐(0)
摘要:1. 单向边 + 新图建边 int belong[N], dfn[N], low[N], now_time, scc_cnt; stack<int> s; void dfs(int u){ dfn[u] = low[u] = ++now_time; s.push(u); for(int i = he 阅读全文
posted @ 2018-12-10 16:47 Schenker 阅读(244) 评论(0) 推荐(0)
摘要:题目传送门 题意:刚开始有一个气球体积为空,现在有n个充气点,从1->n遍历这n充气点,每个充气点有vi,di,vi为走到这个充气点之后可以为气球充气vi的体积,di为选择了在这个点充气的时候,每次往后走气球会漏di的气体。 题解:李超线段树裸题。 李超树主要是维护优势线段。 每一个节点存一条线段的 阅读全文
posted @ 2018-10-26 14:22 Schenker 阅读(329) 评论(0) 推荐(0)
摘要:AC自动机 模板题 HDU-2222 Keywords Search 1 #include<bits/stdc++.h> 2 using namespace std; 3 #define LL long long 4 #define ULL unsigned LL 5 #define fi firs 阅读全文
posted @ 2018-08-23 17:03 Schenker 阅读(203) 评论(0) 推荐(0)
摘要:转自仓鼠大神的博客 1.快速幂求法 费马小定理(a和p互质) a^(p-1) ≡1 (mod p) a^(p-2) ≡ inv(a) (mod p) 1 LL pow_mod(LL a, LL b, LL p){//a的b次方求余p 2 LL ret = 1; 3 while(b){ 4 if(b 阅读全文
posted @ 2018-08-23 16:58 Schenker 阅读(237) 评论(0) 推荐(0)
摘要:link-cut tree #define lch(x) tr[x].son[0] #define rch(x) tr[x].son[1] const int N = 5e5 + 100; struct Node{ int rev, rt; int son[2], pre; int mx, val, 阅读全文
posted @ 2018-08-23 16:50 Schenker 阅读(176) 评论(0) 推荐(0)
摘要:1 #define lch(x) tr[x].son[0] 2 #define rch(x) tr[x].son[1] 3 const int N = 1e5 + 100; 4 int tot = 0, root; 5 struct Node{ 6 int son[2], pre, sz; 7 vo 阅读全文
posted @ 2018-08-23 16:45 Schenker 阅读(189) 评论(0) 推荐(0)
摘要:1. 最大流 const int N = 200; const int M = N*N; int head[N], deep[N], cur[N]; int w[M], to[M], nx[M]; int tot; void add(int u, int v, int val){ w[tot] = 阅读全文
posted @ 2018-08-23 16:08 Schenker 阅读(336) 评论(0) 推荐(0)
摘要:1 struct FastIO { 2 static const int S = 1310720; 3 int wpos; 4 char wbuf[S]; 5 FastIO() : wpos(0) { } 6 inline int xchar() { 7 static char buf[S]; 8 阅读全文
posted @ 2018-08-17 13:18 Schenker 阅读(343) 评论(0) 推荐(0)