bzoj
文章平均质量分 77
bzoj题目专栏
_Ark
这个作者很懒,什么都没留下…
展开
-
bzoj 3331: [BeiJing2013]压力 (点双 圆方树 树链剖分 线段树)
题面如今,路由器和交换机构建起了互联网的骨架。处在互联网的骨干位置的核心路由器典型的要处理100Gbit/s的网络流量。他们每天都生活在巨大的压力之下。小强建立了一个模型。这世界上有N个网络设备,他们之间有M个双向的链接。这个世界是连通的。在一段时间里,有Q个数据包要从一个网络设备发送到另一个网络设备。一个网络设备承受的压力有多大呢?很显然,这取决于Q个数据包各自走的路径。不过,某...原创 2020-01-12 15:22:11 · 307 阅读 · 0 评论 -
BZOJ 4802: 欧拉函数 (Pollard-Rho)
开始一直T,原来是没有srand…CODE#include<bits/stdc++.h>using namespace std;typedef long long LL;vector<LL>arr;inline LL multi(LL a, LL b, LL p) { LL re = a * b - (LL)((long double) a / p * b +...原创 2019-04-04 21:13:08 · 134 阅读 · 0 评论 -
BZOJ 4522: [Cqoi2016]密钥破解 (Pollard-Rho板题)
Pollard-Rho 模板板题…没啥说的…求逆元出来后如果是负的记得加回正数CODE#include<bits/stdc++.h>using namespace std;typedef long long LL;queue<int>arr;inline LL multi(LL a, LL b, LL p) { //快速乘 LL re = a * b - ...原创 2019-04-04 17:58:20 · 192 阅读 · 0 评论 -
BZOJ 2219 数论之神 (CRT推论+BSGS+原根指标)
存两篇博客PoPoQQQjcvb原创 2019-04-02 12:26:38 · 217 阅读 · 0 评论 -
BZOJ 1420: Discrete Root (原根+BSGS)
题意已知kkk, aaa, ppp. 求 xk≡a (mod p)x^k\equiv a\ (mod\ p)xk≡a (mod p) 的所有根. 根的范围[0,p−1][0,p-1][0,p−1]. ppp为质数分析因为ppp是质数,那么一定有原根.设为ggg.原根的性质如下:对于[1,p−1][1,p-1][1,p−1]的所有iii,一定存在x...原创 2019-04-02 11:27:28 · 258 阅读 · 0 评论 -
BZOJ 4128: Matrix (矩阵BSGS)
类比整数的做法就行了1A爽哉#include<bits/stdc++.h>using namespace std;typedef long long LL;const int MAXN = 75;const int sed = 137;int n, p;struct Matrix { int v[MAXN][MAXN]; Matrix(){ memset...原创 2019-04-02 10:20:03 · 330 阅读 · 0 评论 -
BZOJ 3122: [Sdoi2013]随机数生成器 (BSGS)
设目标状态为XnX_nXn.画一画柿子Xi+1=a∗Xi+bXi+1+ba−1=a∗(Xi+ba−1)\begin{aligned}X_{i+1}&=a*X_i+b\\X_{i+1}+\frac b{a-1}&=a*\left(X_i+\frac b{a-1}\right)\end{aligned}Xi+1Xi+1+a−1b=a∗Xi+b=a∗(Xi+...原创 2019-04-02 09:45:07 · 151 阅读 · 0 评论 -
BZOJ 2242 / Luogu P2485 [SDOI2011]计算器 (BSGS)
type 1type\ 1type 1 就直接快速幂type 2type\ 2type 2 特判+求逆元就行了.type 3type\ 3type 3 BSGS板CODE#include<bits/stdc++.h>using namespace std;typedef long long LL;inline L...原创 2019-04-02 08:39:51 · 222 阅读 · 0 评论 -
BZOJ 4031: [HEOI2015]小Z的房间 (矩阵树定理 板题)
背结论 : 度-邻#include <bits/stdc++.h>using namespace std;typedef long long LL;template<class T>inline void read(T &num) { register char ch; register int flg = 1; while(!isdigit...原创 2019-04-01 09:02:24 · 158 阅读 · 0 评论 -
BZOJ 3309: DZY Loves Math (莫比乌斯反演)
反演比较简单,可以化成Ans=∑k=1min(n,m)⌊nk⌋⌊mk⌋∑d∣kμ(kd)f(d)\large Ans=\sum_{k=1}^{min(n,m)}\lfloor{\frac{n}{k}}\rfloor\lfloor{\frac{m}{k}}\rfloor\sum_{d|k}\mu(\frac kd)f(d)Ans=k=1∑min(n,m)⌊kn⌋⌊km⌋d∣k∑μ(dk)f...原创 2019-04-05 09:32:00 · 181 阅读 · 0 评论 -
[bzoj 4176] Lucas的数论 (杜教筛 + 莫比乌斯反演)
题面设d(x)d(x)d(x)为xxx的约数个数,给定NNN,求 ∑i=1N∑j=1Nd(ij)\sum^{N}_{i=1}\sum^{N}_{j=1} d(ij)i=1∑Nj=1∑Nd(ij)N&amp;lt;=109N&amp;lt;=10^9N&lt;=109题目分析有这样一个结论d(ij)=∑x∣i∑y∣j[(x,y)==1]d(ij)=\sum_{x|i}\sum_{y|...原创 2018-12-10 22:45:03 · 244 阅读 · 0 评论 -
[bzoj 2693] jzptab & [bzoj 2154] Crash的数字表格 (莫比乌斯反演)
题目描述TTT组数据,给出NNN,MMM,求∑x=1N∑y=1Mlim(x,y)\sum_{x=1}^N\sum_{y=1}^M lim(x,y)\newlinex=1∑Ny=1∑Mlim(x,y)N,M&amp;amp;lt;=10000000T&amp;amp;lt;=100000N,M &amp;amp;lt;= 10000000\newlineT&amp;amp;lt;= 100000N,M&amp;lt原创 2018-12-02 23:00:26 · 202 阅读 · 0 评论 -
[bzoj 3701] Olympic Games (莫比乌斯反演)
题目描述给出n,m,l,r,modn,m,l,r,modn,m,l,r,mod表示一个(n+1)∗(m+1)(n+1)*(m+1)(n+1)∗(m+1)的格点图,求能够互相看见的点对个数对modmodmod取模的值.能互相看见定义为此两点连线上没有其他的格点且欧氏距离在[l,r]范围内n,m&amp;amp;lt;=100000l,r&amp;amp;lt;=150000mod&amp;amp;lt;=109n...原创 2018-12-01 17:37:39 · 209 阅读 · 0 评论 -
[bzoj 1471] 不相交路径 (容斥原理)
题目描述给出一个N(n&amp;lt;=150)个结点的有向无环简单图。给出4个不同的点a,b,c,d,定义不相交路径为两条路径,两条路径的起点分别为a和c,对应的两条路径的终点为b和d,要求满足这两条路径不相交,即两条路径上没有公共的点。 现在要求不相交路径的方案数。题目分析这道题类似于[bzoj 4767] 两双手记f[i][j]f[i][j]f[i][j]表示从iii走到jjj路径条数g[...原创 2018-11-30 23:02:19 · 1989 阅读 · 2 评论 -
[bzoj 2393] Cirno的完美算数教室 (容斥原理+dfs剪枝)
题目描述CirnoCirnoCirno发现了一种bakabakabaka数,这种数呢只含有222和999两种数字现在CirnoCirnoCirno想知道[L,R][L,R][L,R]中有多少个数能被bakabakabaka数整除1&amp;lt;L&amp;lt;R&amp;lt;10101&amp;lt;L&amp;lt;R&amp;lt;10^{10}1&lt;L&原创 2018-11-28 23:06:32 · 207 阅读 · 0 评论 -
BZOJ 4503: 两个串 FFT
题意在aaa串中找哪些地方出现了bbb。bbb中有通配字符。设第一个串aaa的长度为nnn,第二个串bbb的长度为mmm。下标从000开始。首先我们把bbb串中???的位置的值bib_ibi设为000。然后构造F(i)=∑j=0m−1(a[i+j]−b[j])2∗b[j]F(i)=\sum_{j=0}^{m-1}(a[i+j]-b[j])^2*b[j]F(i)=j=0∑m−1(a[i+...原创 2019-06-01 15:54:35 · 150 阅读 · 0 评论 -
[BZOJ 3160] 万径人踪灭 (FFT + Manacher)
AC code#include &amp;lt;cstdio&amp;gt;#include &amp;lt;cmath&amp;gt;#include &amp;lt;algorithm&amp;gt;#include &amp;lt;cstring&amp;gt;using namespace std;const int MAXN = 1e5 + 5;原创 2018-12-24 22:54:33 · 182 阅读 · 0 评论 -
BZOJ 3944: Sum (杜教筛)
惊险…卡着时限过了…注意有的地方可能爆int(因为有231−12^{31}-1231−1)有几个地方可能会蜜汁RE,具体看代码注释CODE9000ms卡过2333#include<bits/stdc++.h>using namespace std;typedef long long LL;const int MAXN = 1000005;int prime[MAXN/...原创 2019-04-04 22:30:29 · 120 阅读 · 0 评论 -
BZOJ 2244: [SDOI2011]拦截导弹 (CDQ分治 三维偏序 DP)
题意略…分析就是求最长不上升子序列,坐标取一下反就是求最长不下降子序列,比较大小是二维(h,v)(h,v)(h,v)的比较.我们不看概率,先看第一问怎么求最长不降子序列.设f[i]f[i]f[i]表示以iii结尾的最长不降子序列的长度,有f[i]=max(f[j]+1) ( 0≤j<i,hj≤hi,vj≤vi )f[i]=max(f[j]+1)\ ...原创 2019-03-22 09:45:05 · 218 阅读 · 0 评论 -
BZOJ 3052/Luogu P4074 [wc2013]糖果公园 (树上带修莫队)
题面中文题面,难得解释了BZOJ传送门Luogu传送门分析树上带修莫队板子题。。。开始没给分块大小赋初值T了好一会。。。CODE#include <bits/stdc++.h>using namespace std;typedef long long LL;template<typename T>inline void read(T &num)...原创 2019-03-10 20:37:23 · 166 阅读 · 0 评论 -
BZOJ 4129 Haruna’s Breakfast ( 树上带修莫队 )
题面求树上某路径上最小的没出现过的权值,有单点修改 添加链接描述分析树上带修莫队板题,问题是怎么求最小的没出现过的权值。因为只有nnn个点,所以没出现过的最小值一定在[0,n][0,n][0,n]内,所以大于nnn的无需维护。那么我们就值域分块,每n\sqrt nn个数开一个数组,那么从小到大枚举块,如果当前块没有满那么就在这个块里查找,每次查找时间复杂度为O(n)O(\sqrt n)O...原创 2019-03-10 11:38:09 · 148 阅读 · 0 评论 -
BZOJ 1027: [JSOI2007]合金 (计算几何+Floyd求最小环)
题解就看这位仁兄的吧…不过代码还是别看他的了…同样的方法…我200ms,他2000ms.常数的幽怨…CODE#include <bits/stdc++.h>using namespace std;const int MAXN = 505;const double eps = 1e-8;struct Point { double x, y; Point(){} Po...原创 2019-04-04 16:07:56 · 144 阅读 · 0 评论 -
BZOJ 2178: 圆的面积并 (辛普森积分)
code#include <set>#include <cmath>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int MAXN = 1005;const double Pi = acos(-1.0);c...原创 2019-04-03 23:07:48 · 216 阅读 · 0 评论 -
BZOJ 1043: [HAOI2008]下落的圆盘
暴力枚举每个圆后面的所有圆对这些圆每个与当前圆计算覆盖的弧度(有两个半径一个圆心距可以用余弦定理)把算出来的这些弧度存进栈里最后一起统计一下总共覆盖多少弧度,再计算剩余部分弧长(摘自CreationAugust 的博客)CODE#include <set>#include <cmath>#include <cstdio>#include <...原创 2019-04-03 22:57:41 · 144 阅读 · 0 评论 -
BZOJ 3210: 花神的浇花集会 (切比雪夫距离)
GXZlegendCODE#include <bits/stdc++.h>using namespace std;#define LL long longconst int MAXN = 100005;int n, a[MAXN], b[MAXN], x[MAXN], y[MAXN];inline LL f(int px, int py) { LL re = 0; f...原创 2019-04-03 21:50:12 · 156 阅读 · 0 评论 -
BZOJ 2458: [BeiJing2011]最小三角形 (分治)
分治就是了.类似于分治找最近/远点对.CODE#include <bits/stdc++.h>using namespace std;const double eps = 1e-13;const int MAXN = 200005;const double INF = 1e15;#define sqr(x) ((x)*(x))struct Point { doubl...原创 2019-04-03 20:13:45 · 163 阅读 · 0 评论 -
BZOJ 1845: [Cqoi2005] 三角形面积并 (辛普森积分)
大力辛普森积分精度什么的搞了我好久…学到了Simpson的一个trick速度成功BZOJ倒数CODE#include <bits/stdc++.h>using namespace std;const int MAXN = 205;const double eps = 1e-13;inline double sqr(double x) { return x*x; }i...原创 2019-04-03 19:10:18 · 263 阅读 · 0 评论 -
BZOJ 1007: [HNOI2008]水平可见直线 (半平面交)
eps害人啊…我开到1e-10都不够,1e-12才够.然鹅我看有的代码不用写eps都过了…蒟蒻被动:被卡精度.#include <bits/stdc++.h>using namespace std;const double eps = 1e-12;const int MAXN = 50005;inline double sqr(double x) { return x*x...原创 2019-04-02 21:39:50 · 173 阅读 · 0 评论 -
BZOJ 1038: [ZJOI2008]瞭望塔
半平面交后,可能成为答案的点就是凸包上的点 和 山峰(分段函数的分段点).枚举一下就行了.#include <bits/stdc++.h>using namespace std;const double eps = 1e-10;const int MAXN = 505;inline double sqr(double x) { return x*x; }inline do...原创 2019-04-02 21:15:22 · 183 阅读 · 0 评论 -
BZOJ 3901 棋盘游戏 (找结论+枚举+贪心)
题面略 BZOJ 传送门分析具体分析见 dalao博客妙就妙在当i&lt;x,j&lt;xi&lt;x,j&lt;xi<x,j<x时,(i,j)(i,j)(i,j) ^ (i,x)(i,x)(i,x) ^ (i,j+x)=0(i,j+x)=0(i,j+x)=0那么就枚举第xxx行的一半,然后就能得到第xxx整行.因为只要满足上面的结论就一定存...原创 2019-03-12 17:11:48 · 173 阅读 · 0 评论 -
BZOJ 2013 : [Ceoi2010]A huge tower / Luogu SP6950 CTOI10D3 - A HUGE TOWER
传送门菜鸡.jpgCODE#include <bits/stdc++.h>using namespace std;const int MAXN = 620005;int n, d, a[MAXN];int main() { scanf("%d%d", &n, &d); for(int i = 1; i <= n; ++i) scanf("%d...原创 2019-04-03 22:22:46 · 186 阅读 · 0 评论 -
BZOJ 1109: [POI2007]堆积木Klo (LIS)
%%%PoPoQQQmdzz写错变量见祖宗#include<bits/stdc++.h>using namespace std;char cb[1<<15],*cs=cb,*ct=cb;#define getc() (cs==ct&&(ct=(cs=cb)+fread(cb,1,1<<15,stdin),cs==ct)?0:*cs++)...原创 2019-03-28 22:47:12 · 198 阅读 · 0 评论 -
BZOJ 1818: [Cqoi2010]内部白点 (BIT + 扫描线)
就是求多条线段的交集,直接BIT+扫描线就行了CODE#include<bits/stdc++.h>using namespace std;char cb[1<<15],*cs=cb,*ct=cb;#define getc() (cs==ct&&(ct=(cs=cb)+fread(cb,1,1<<15,stdin),cs==ct)?0:...原创 2019-03-28 20:09:45 · 124 阅读 · 0 评论 -
BZOJ 1107: [POI2007]驾驶考试egz / Luogu P3463 [POI2007]EGZ-Driving Exam (树状数组 LIS)
能从iii走到所有跑道 相当于 能从iii走到111和nnn.边反向后就相当于 能从111和nnn走到iii.为了方便叙述,把111~nnn叫做x坐标,111~(m+1)(m+1)(m+1)叫做y坐标.然后我们将图上下翻转(yyy坐标)后,能从111走到iii的话一定经过i−1i-1i−1条向右的边,且这些边的yyy坐标不下降.那么我们设fl[i]fl[i]fl[i]表示从111走到iii...原创 2019-03-28 18:59:45 · 186 阅读 · 0 评论 -
BZOJ 3772: 精神污染 (dfs序+树状数组)
跟 BZOJ 4009: [HNOI2015]接水果一样…CODE#include <set>#include <queue>#include <cctype>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;...原创 2019-03-22 21:25:45 · 227 阅读 · 0 评论 -
BZOJ 2759 一个动态树好题 (LCT)
PoPoQQQ 再一次orz…没看得特别明白的可以回来看看蒟蒻的补充口胡我这里提一下关于splay维护的子树信息…在原树上考虑,对于每一个点iii都有这样一个信息xi=ki∗xfa[i]+bix_i=k_i*x_{fa[i]}+b_ixi=ki∗xfa[i]+bi.特别的,对于根节点rrr,设它的父亲为sf(special father)sf(special\ fath...原创 2019-03-21 21:40:02 · 163 阅读 · 0 评论 -
BZOJ 1180 [CROATIAN 2009]OTOCI // BZOJ 2843 极地旅行社 // Luogu P4321 [COCI 2009] OTOCI / 极地旅行社 (LCA板题)
emmm…标题卡着长度上限…LCT板题…(ε=ε=ε=┏(゜ロ゜;)┛)CODE#include <cctype>#include <cmath>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;typedef long ...原创 2019-03-21 19:04:52 · 132 阅读 · 0 评论 -
BZOJ 2631 tree / Luogu P1501 [国家集训队]Tree II (LCT,多重标记)
题意一棵树,有删边加边,有一条链加/乘一个数,有询问一条链的和分析LCT,像线段树一样维护两个标记(再加上翻转标记就是三个),维护size,就行了CODE#include <cstdio>#include <cstring>#include <algorithm>using namespace std;typedef long long LL;...原创 2019-03-19 17:20:22 · 153 阅读 · 0 评论 -
BZOJ 2594: [Wc2006]水管局长数据加强版 (LCT维护最小生成树)
离线做,把删边转化为加边,那么如果加边的两个点不连通,直接连就行了.如果联通就找他们之间的瓶颈边,判断一下当前边是否更优,如果更优就cut掉瓶颈边,加上当前边.那怎么维护瓶颈边呢?把边也看做点,向两个点分别连边,那么只用维护最大值就行了.维护的时候保存编号,比较的时候就比较编号对应的边权,这样方便询问时删边.还有读入后注意储存 边(u,v)或者断边(u,v) 的时候,把较小值设为u,较大值设为...原创 2019-03-19 16:46:59 · 202 阅读 · 0 评论 -
BZOJ 2049: [Sdoi2008]Cave 洞穴勘测 (LCT维护连通性)
直接把x设为根,然后查询y所在联通块的根是不是x就行了.CODE#include <cstdio>#include <cstring>#include <algorithm>using namespace std;typedef long long LL;template<typename T>inline void read(T &a...原创 2019-03-19 16:03:12 · 127 阅读 · 0 评论