模板
DancingZ
三秋桂子,十里荷花
展开
-
高精度模板
#include<bits/stdc++.h>using namespace std;struct Big{ int N; vector<int>vec; Big(int x=0):N(1),vec(10005,0){for(N=x?0:1;x;x/=10)vec[++N]=x%10;} Big(char *s):N(strlen(s)),vec(10005,...原创 2018-08-01 21:20:07 · 296 阅读 · 1 评论 -
KMP模板
kmp,就是对于一个串A,对于每个位置i找到一个j(0<=j<i),使得A(1)~A(j)与A(i-j)~A(i-1)完全匹配,那么我们进行字符串匹配的时候就可以直接跳一大截,而不用暴力匹配(虽然brute force很优秀就是了)。我的fail数组就是next,kmp本质上是一个一条链的ac自动机。#include<bits/stdc++.h>using na...原创 2018-11-04 16:08:09 · 331 阅读 · 0 评论 -
HDU4348 To the moon
题目大意:给你n个数,开始时间为0,按照操作输出给你四种操作:1、C l r d : 在(l,r)区间都加上d,++时间戳2、Q l r : 询问现在(l,r)的区间和3、H l r t : 询问在t时间的(l,r)的区间和4、B t : 直接回到t的时间主席树维护区间标记,标记永久化来写。pushdown的话会多开许多节点,很难受。记住一句话:更新节点要新开节点...原创 2018-09-28 17:44:14 · 242 阅读 · 0 评论 -
JLOI2015/BZOJ4003 城池攻占
Description 小铭铭最近获得了一副新的桌游,游戏中需要用m个骑士攻占n个城池。 这n个城池用1到n的整数表示。除1号城池外,城池i会受到另一座城池fi的管辖,其中fi 每个城池有一个防御值hi,如果一个骑士的战斗力大于等于城池的生命值,那么骑士就可以占领这座城池;否则占领失败,骑士将在这座城池牺牲。占领一个城池以后,骑士的战斗力将发生变化,然后继续攻击管辖这座城池的城池,直到...原创 2018-09-27 16:40:59 · 224 阅读 · 0 评论 -
JZOJ5055 树上路径
Description给定一颗n个结点的无根树,树上的每个点有一个非负整数点权,定义一条路径的价值为路径上的点权和-路径的点权最大值。给定参数p,我们想知道,有多少不同的树上简单路径,满足它的价值恰好是p的倍数。注意:单点算作一个路径;u ≠ v时,(u,v)和(v,u)只算一次。Input第一行包含两个整数n,p;接下来n-1行,每行两个整数u,v,表示一条树边。接下来一行n...原创 2018-09-26 19:37:52 · 452 阅读 · 0 评论 -
与众不同 RMQ——ST表的运用
inline void ST(int n){ int maxlog=log2(n); for(int j=1;j<=maxlog;++j) for(int i=1;i+(1<<j-1)-1<=n;++i) mx[i][j]=max(mx[i][j-1],mx[i+(1<<j-1)][j-1]);}预处理,本质是个dp,倍增求lca思想类似。...原创 2018-09-20 15:50:09 · 917 阅读 · 0 评论 -
POJ1741 树中点对统计
Description 给定一棵N(1<=N<=100000)个结点的带权树,每条边都有一个权值(为正整数,小于等于1001)。定义dis(u,v)为u,v两点间的最短路径长度,路径的长度定义为路径上所有边的权和。再给定一个K(1<=K<=10^9),如果对于不同的两个结点u,v,如果满足dist(u,v)<=K,则称(u,v)为合法点对。求合法点对个数。I...原创 2018-09-19 18:59:50 · 407 阅读 · 0 评论 -
BZOJ1984 月下“毛景树”
Description 毛毛虫经过及时的变形,最终逃过的一劫,离开了菜妈的菜园。 毛毛虫经过千山万水,历尽千辛万苦,最后来到了小小的绍兴一中的校园里。爬啊爬~爬啊爬~~毛毛虫爬到了一颗小小的“毛景树”下面,发现树上长着他最爱吃的毛毛果~~~ “毛景树”上有N个节点和N-1条树枝,但节点上是没有毛毛果的,毛毛果都是长在树枝上的。但是这棵“毛景树”有着神奇的魔力,他能改变树枝上毛毛果的个数: ...原创 2018-09-24 11:47:55 · 225 阅读 · 0 评论 -
好文章
【问题描述】nodgd 写了一篇文章,自认为这是一篇好文章。nodgd 的文章由n个小写英文字母组成。文章的一个子串指的是文章中的一段连续的字母,子串的长度就是这一段的字母个数。nodgd 在文章中用了排比、对偶、前后照应之类的手法,所以就有很多个子串是相同或者相近的。为了向大家证明这是一篇好文章,nodgd 决定给自己的文章进行评分。nodgd 首先确定了一个整数m,然后统计出文章中有多少个...原创 2018-09-17 21:39:18 · 594 阅读 · 0 评论 -
三分模板
三分感觉没什么暖用啊,单峰函数完全可以模拟退火= =可能只是因为代码比较短吧。#include<bits/stdc++.h>using namespace std;#define Inc(i,L,r) for(register int i=(L);i<=(r);++i)const double eps = 1e-10;double calc(double x){...原创 2018-08-08 16:43:07 · 435 阅读 · 0 评论 -
最小生成树——Prim&&Kruskal
这几天做的几套模拟题都要用最小生成树搞~忘得都差不多的我特地来打两个板子。首先,二者均采用贪心策略。算法过程:大概是不断从未知集合往已知集合加元素。感性理解:对于一颗树中的节点(u,v),如果二者间的边权w1小于u->v路径中的边权w2,显然断开w2连接w1更优,这时我们证明了对于max(u->v)<w(u,v);而如果我们采用贪心策略每次选中连接未知集合和已知集合最...原创 2018-08-06 21:22:31 · 371 阅读 · 0 评论 -
AC自动机模板(洛谷P3796)
题目描述有N个由小写字母组成的模式串以及一个文本串T。每个模式串可能会在文本串中出现多次。你需要找出哪些模式串在文本串T中出现的次数最多。输入格式:输入含多组数据。每组数据的第一行为一个正整数N,表示共有N个模式串,1≤N≤150。接下去N行,每行一个长度小于等于70的模式串。下一行是一个长度小于等于10^6的文本串T。输入结束标志为N=0。输出格式:对于每组数据,...原创 2018-11-04 19:04:26 · 330 阅读 · 0 评论