===模版===
Loi_a
这个作者很懒,什么都没留下…
展开
-
bzoj1911 特别行动队 斜率优化
斜率优化最裸的裸题,但是式子推了好久,忘了形式。#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define LL long long using namespace std; LL dp[1000005]; LL s[1000005]; LL a,b,c; LL p(LL x) { retur原创 2016-09-21 21:16:19 · 371 阅读 · 0 评论 -
bzoj 3282 Tree 动态树LCT
学了一天LCT,还是不太明白,打(抄)了一个模板,先存着。#include<iostream> #include<cstdio> #include<algorithm> #include<stack> #define maxn 300005 using namespace std; inline void read(int &a) { a=0;char c=getchar(); wh原创 2016-09-27 15:30:30 · 481 阅读 · 0 评论 -
hdu 1512 左偏树
题意大概是有n只猴子,m次矛盾,a和b产生矛盾时,如果他们不认识,就会找各自认识中最强壮的猴子打架,然后打架的猴子权值减半,这两拨猴子就互相认识了,成了一群猴子,每次求合成一群后的最大权值。#include<iostream> #include<cstdio> #define maxn 100001 using namespace std; int f[maxn]; int find(int x)原创 2016-12-31 19:55:35 · 483 阅读 · 0 评论 -
bzoj1468 tree 点分治
给你一棵TREE,以及这棵树上边的距离.问有多少对点它们两者间的距离小于等于K 计算经过根的路径,既离根的距离之和小于K的点,然后递归处理不经过根的路径。这样会有一些重复,两点与根的距离之和小于K,但是路径不经过根,需要减掉。#include<iostream> #include<cstdio> #include<algorithm> #define maxn 80005 using namespa原创 2016-12-20 19:16:06 · 477 阅读 · 0 评论 -
tyvj1860 后缀数组 模板
注意常数优化(优化输出等)。#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int MAXN=2e5+10; int n,sa[MAXN],tmp[MAXN],rank[MAXN],sec[MAXN],cnt[MAXN],height[MA原创 2016-12-26 17:19:44 · 400 阅读 · 0 评论 -
bzoj 3110 K大数查询 整体二分
#include<cstdio> #include<iostream> #define maxn 50005 #define LL long long using namespace std; int n,m; struct Que{ int op,l,r,x,id; void read() { scanf("%d%d%d%d",&op,&l,&r,&x);原创 2017-01-03 19:15:47 · 461 阅读 · 0 评论 -
洛谷1341 无序字母对 欧拉路
#include<iostream> #include<cstdio> using namespace std; char a[4]; int vis[55][55]; int f(char s) { if(s>='A'&&s<='Z') return s-'A'+1; return s-'a'+27; } int cd[55]; int jd[55],cnt; vo原创 2016-11-14 17:17:32 · 544 阅读 · 0 评论 -
CTSC2014 企鹅QQ Hash模板
#include<cstdio> #include<iostream> #include<cstring> #include<algorithm> #define LL unsigned long long using namespace std; LL Hash[30005]; char s[30005][205]; int n,L,k; int num(char c) { if(c>='原创 2016-11-17 07:32:03 · 465 阅读 · 0 评论 -
SCOI 2010 生成字符串 组合数+逆元
计算组合数有许多方法,我先是分解质因数,但是这样效率非常低,1700ms。 然后求逆元,求解,时间复杂度为o(N).这个模数是质数,不用考虑逆元无解情况。#include<iostream> #include<cstdio> #define LL long long using namespace std; LL K=20100403; LL x,y; void exgcd(LL a,LL b)原创 2016-11-16 20:15:18 · 422 阅读 · 0 评论 -
HDU 2222 Keywords Search AC自动机
存个模板。#include<iostream> #include<cstdio> #include<queue> #include<cstring> #define SZ 500005 using namespace std; struct Trie{ int val[SZ],ch[SZ][30],tot; int fail[SZ],lst[SZ]; void insert(原创 2016-10-16 11:19:54 · 327 阅读 · 0 评论 -
KMP模板
#include<iostream> #include<cstdio> #include<cstring> using namespace std; char s1[1000005],s2[1000005]; int fail[1000005]; void init(int m) { fail[1]=0; for(int i=2;i<=m;i++) { int原创 2016-10-14 14:43:57 · 390 阅读 · 0 评论 -
bzoj3450 Tyvj1952 Easy 简单的数学期望
题目大意:一个长度为n(n<300,000)的序列,每个地方可以是o,x,?中的一个。‘?’表示x和o的概率各是50%。一个序列的权值是所有连续的‘o’长度的平方和,问给出序列的期望权值是多少。 例如 oo?xxo 如果’?’是’o’,则权值为3²+1²=10; 如果’?’是‘x’,则权值为2²+1²=5; 期望就是(10+5)/2=7.5;========================原创 2016-07-29 13:28:11 · 493 阅读 · 0 评论 -
poj3281 Dining 最大流
模板#include<iostream> #include<cstdlib> #include<queue> #include<cstdio> #include<cstring> using namespace std; queue<int> q; struct Edge { int to,cap; }b[20005]; int fst[505],nxt[20005],tot=1; int原创 2016-09-02 21:03:24 · 339 阅读 · 0 评论 -
Windy数BZOJ 数位DP
#include<iostream> #include<cstdio> #include<cstring> int qqq(int x) { return x>=0?x:-x; } using namespace std; int dp[15][10][2]; char a[15],b[15]; int main() { scanf("%s%s",a+1,b+1); int原创 2016-07-25 22:07:09 · 371 阅读 · 0 评论 -
bzoj1503郁闷的出纳员 Splay
Splay维护插入,删除,由排名找值,裸题。 但是比较坑的一点是最后统计离开人数的时候,刚进来就离开的人是不计入答案的(再次重复我语文不好)。直接上代码。#include<iostream> #include<cstdio> using namespace std; int ch[100005][2]; int fa[100005]; int sz[100005]; int key[100005]原创 2016-07-28 15:24:53 · 410 阅读 · 0 评论 -
bzoj1051 受欢迎的牛 tarjan
存一个tarjan模板就跑。#include<iostream> #include<cstdio> #include<stack> using namespace std; int fst[10005],nxt[100005],to[100005]; int tot=1; void build(int f,int t) { to[++tot]=t; nxt[tot]=fst[f];原创 2016-07-28 15:31:09 · 401 阅读 · 0 评论 -
poj2104 K-th number 主席树模版
这个题以前分块做,学了主席树(抄模版),存一下;#include<iostream> #include<cstdio> #include<algorithm> using namespace std; int a[100005]; int L[100005]; struct zxs{ int l,r,cnt; }tree[5000005]; int tot=1; int rt[100005]原创 2016-08-16 09:54:07 · 351 阅读 · 0 评论 -
bzoj1036 树的统计 树链剖分
又是一道裸题,刚学会树链剖分,存个模版。#include<iostream> #include<cstdio> using namespace std; struct bian{ int to; }b[60005]; int fst[30005],nxt[60005]; int tot=1; void build(int f,int t) { b[++tot].to=t; n原创 2016-08-16 15:31:28 · 451 阅读 · 0 评论 -
bzoj 2055 80人环游地球 上下界费用流
这题像上下界网络流一样,把一条边拆成三条,其中原图中的边权值不变,连向超级源点和汇点的边权值改为0就可以。然后把边合并一下。答案为每条边最小容量*权值+建完图后最小费用流。#include<queue> #include<cstdio> #include<cstring> #include<iostream> #define maxn 405 #define LL long long using n原创 2017-03-30 14:20:28 · 444 阅读 · 0 评论