”zP1nG的bzoj“ 的搜索结果

     题目相当于给一个拓扑图,每个边的流量下界为1,求最小流。 首先跑出可行流。建超级源点SS和超级汇点TT。原网络中的T->S连一条流量为inf的弧。把每个点必须流入的流量从SS流入,必须流出的流量流进TT。从SS...

     对于所有串建广义后缀自动机,沿着父亲指针不断向root走,把路径上的节点计数+1。为了避免出现重复,记录每个节点最后一次被哪个串访问,串在走的时候如果遇到了这个串已经访问过的节点就停止。 可以在parent树上dp...

     BZOJ平台全部代码,解压到一个文件夹在打开使用。BZOJ平台全部代码,解压到一个文件夹在打开使用。

     对于区间[l,r],如果其中存在一个数i,使z[i] r,那么区间[l,r]是一定符合题目中条件的,只要这个区间的子区间[l,i-1]和[i+1,r]也符合条件,区间[l,r]就是不无聊的。于是这么分治下去就行了。 但是这么写会T,确切的...

     传送门biu~ 显然一个操作序列是否合法与操作序列的顺序是无关的,所以我们只需要知道某种操作选不选即可。可以从小操作向大操作枚举,这样一个合法的操作序列对答案的贡献为选择的操作数的阶乘。...

     传送门biu~ 令f[i][j]表示以第i个...转移类似st算法,f[i][j]=f[ f[i][j-1] ][ j-1 ]。 #include<bits/stdc++.h> #define N 270000 using namespace std; int n,f[N][60],ans=1; int main(){ sca...

     传送门biu~ 绝对是思路神题。把询问离线并分类:如果询问的p≤100" role="presentation" style="position: relative;">p≤100p≤100p≤100,我们完全可以暴力维护fi,j" role="presentation" style="position:...

     传送门biu~ 可以发现,如果区间[l,r]满足条件,那么它的长度为2的子区间一定满足条件;如果所有长度为2的子区间满足条件,那么这个区间也一定满足条件。所以只需要判断[l,r]之间是否有不满足条件的长度为2的子区间...

     有一棵点数为 N 的树,以点 1 为根,且树点有边权。然后有 M 个操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a 。 操作 2 :把某个节点 x 为根的子树中所有点的点权都增加 a 。 操作 3 :询问某个节点 x ...

     传送门biu~ 一种一定可行的方案就是用n次操作先把所有数合并,再用m次操作分开。总操作次数n+m。 如果对于第一个序列中的某个集合和第二个序列中的某个集合,他们的和是相同的,那么操作次数就可以少2次。...

     在k=2时选两条路的路径长度和最大,将选择的两条路(u1,v1)、(u2,v2)在树上相交的部分抵消掉,可以在求完第一条最长路以后将这条路上的权值都改成-1,这样在跑第二条路的时候就可以看作相互抵消了。 #include&...

     传送门biu~ 二分答案x,表示删数后序列的平均数为x。让原序列每个数减去x,并删去最大子段,判断剩下的数的和是否小于等于0,如果小于等于0证明平均数小于等于x。 #include<bits/stdc++.h&...

     传送门biu~ fi,jf_{i,j}表示剩下ii枚硬币,前一个人拿了jj枚,自己...转移:fi,j=max{sumi−fi−k,k} (1≤k≤min(2j,i))f_{i,j}=\max\{sum_i−f_{i−k,k}\} \ \ \ \ \ (1≤k≤min(2j,i))  即fi,j=sumi−min{fi−k,k}

     传送门biu~ 题目可以转化为每一个对应关系a-b为从a->b的一条边,求存在的所有环的大小的最小公倍数有几种情况。考虑dp,只考虑质数的情况可以分解质因数,f[i][j]代表选前i个质数的和不超过j的情况数。...

     传送门biu~ 先记录事件,把每次查询拆为四个。按时间分治,每次考虑左边的修改对右边的查询的影响。用树状数组维护当前行上面的所有行的数值的和。#include #define lowbit(x) (x&(-x)) #define INF 2000000000 ...

     传送门biu~ 网络流经典题。建图时,把每根柱子拆成两个点,分别表示入和出。入点和出点之间用柱子的高度限流。把能互相到达的柱子连一条流量为INF的弧,再把能让蜥蜴跳出地图的柱子连一条到汇点流量为INF的弧,把...

     计算矩阵t次幂后1到每个节点的方案数和。 #include<bits/stdc++.h> using namespace std; const int mod=2017; int n,m,t,ans; struct Matrix{ int a[35][35]; Matrix operator*(con...

     传送门biu~ dis[i][j]代表到第i个点速度为j时需要的最少时间,spfa转移即可。 #include<bits/stdc++.h> #define pa pair&...pa fr

     Description 我们害怕把这道题题面搞得太无聊了,所以我们决定让这题超短。一个序列被称为是不无聊的,仅当它的每个连续子...每组数据第一行一个正整数n,表示序列的长度,1 Output 对于每组数据输出一行,输出”

     传送门biu~ 用线段树维护使用编号在[l,r]内的道路最终会选择哪些道路。即线段树每个节点记录一个边的集合,集合大小显然不超过n。 在合并两个区间的时候采用Kruskal用归并的方式合并(暴力)。...

     传送门biu~ 对于一个气球i,如果它左边的某个气球j的右边有比j大的气球,显然j不会对i的大小产生影响。所以能够影响气球i的大小的气球集合是坐标递增半径递减的。 我们把这些气球放在一个栈里,从栈顶的气球开始...

     当一个节点数是n的联通块是一棵树时,只有n-1个属性能被满足;当联通快不是一棵树时,所有的属性都能被满足。所以把每个联通快用并查集维护,当联通块是一棵树的时候让块内最大的属性值不能满足。最后暴力查结果就...

     传送门biu~ 如果不删点的话,那就是很简单的一个dp。因为起终点不能确定,所以建一个超级源S和一个超级汇T。问题转化为求从S到T的最长路。 对于删点的问题,我们可以预处理S到每个点的最长路,和每个点到T的最长路...

     传送门biu~ 三边之和大于第四边。f[i][j]表示前i条边用了长度共为j的木板,每条木板长度不能超过n的一半。dp即可。#include using namespace std; int f[5][2501],n; int main(){ ... int MAX=((n+1)>>1)-1;

     对于序列上的每一个点开一个值域为[1,n]的权值线段树。对于每个熊孩子区间[l,r],将l作为权值加入线段树r中。当一个点x的值被减至0并将被从链表中删除时,假设点x左边第一个值不为0的点为p,那么线段树x上每一个&amp...

7   
6  
5  
4  
3  
2  
1