自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(97)
  • 收藏
  • 关注

转载 [luogu4234]最小差值生成树

[luogu4234]最小差值生成树 luogu 从小到大枚举边,并连接,如果已连通就删掉路径上最小边 lct维护 \(ans=min(E_{max}-E_{min})\) #include<bits/stdc++.h> using namespace std; const int _=4e5+5; int re(){ int x=0,w=1;char ch=getc...

2018-12-13 16:04:00 225

转载 [THUWC2017]在美妙的数学王国中畅游

[THUWC2017]在美妙的数学王国中畅游 luogu BZOJ 以前的一道考题,那时候lct什么的不会的 现在,泰勒展开什么的不会的 但如果把公式这么明显地给了你 就是让你对这三个函数求n次导直到精度达到要求 博猪是求了12次 \((sinx)'=cosx\) \((cosx)'=-sinx\) \((e^x)'=e^x\) \((ax+b)'=a\) \((a)'=0\) 然后这里...

2018-12-13 14:29:00 245

转载 [清华集训2016]温暖会指引我们前行

[清华集训2016]温暖会指引我们前行 UOJ BZOJ lct维护最大生成树和链上的边权和 #include<bits/stdc++.h> using namespace std; const int _=4e5+5; int re(){ int x=0,w=1;char ch=getchar(); while(ch<'0'||ch>'9'){i...

2018-12-13 14:19:00 230

转载 [清华集训2014]奇数国

[清华集训2014]奇数国 luogu UOJ 题意其实是让单点修改,区间求\(\varphi\) 还保证分解之后只会有前60个质数 那么用60个线段树维护区间和即可 还有巧妙的做法是把60个质数是否存在压在long long中线段树维护 考试谁管那么多... 然后BZOJ硬是T了... #define ri register int #define ls x<<1,l,mi...

2018-12-11 09:02:00 212

转载 [luogu4556]雨天的尾巴

[luogu4556]雨天的尾巴 luogu 发现是一顿子修改然后再询问,那么把修改树上差分一下再线段树合并 但是... 如果你只有35分... https://www.luogu.org/discuss/show/88259 #include<bits/stdc++.h> using namespace std; const int _=1e5+5; int re(){ ...

2018-12-11 08:50:00 122

转载 [NOI2014]魔法森林

[NOI2014]魔法森林 UOJ BZOJ luogu 把边以a为关键字从小到大排序,对b用lct维护最小生成树 此题可以并查集维护连通性,lct的findroot速度感人 #include<bits/stdc++.h> using namespace std; const int _=2e5+5,inf=1e9; int re(){ int x=0,w=1;cha...

2018-12-11 08:46:00 158

转载 [清华集训2014]玛里苟斯

[清华集训2014]玛里苟斯 UOJ BZOJ 对于k=1,全部或起来除个2(如果某个数该位为1,那么这一位为1的概率为\(\frac{1}{2}\)) 对于k=2,枚举两位(如果全有1,概率为\(\frac{1}{2}\)或者\(\frac{1}{4}\),看是否同时出现),最后除个2 对于k>=3,发现\(a_i\leq2^{21}\),暴力枚举答案检验每个答案是否能被异或出来...

2018-12-06 16:13:00 160

转载 [清华集训2016]汽水

[清华集训2016]汽水 UOJ BZOJ 这是一个常数大的人过不了的算法 分数规划套点分治,暴力离散化然后树状数组查询 复杂度:\(O(nlog^3n)\) 所以有大佬教我卡卡常嘛?? #define lb(i) (i&-i) #define ll long long #include<bits/stdc++.h> using namespace std; cons...

2018-12-06 14:16:00 191

转载 [清华集训2016]组合数问题

[清华集训2016]组合数问题 UOJ BZOJ 通过Lucas定理把题面转化一下 相当于求i<=n,j<=m在k进制下有多少(i,j)满足i的每一位都大于等于j 数位dp求解 #define ll long long #include<bits/stdc++.h> using namespace std; const int mod=1e9+7; ll re()...

2018-12-02 15:49:00 191

转载 [note]克鲁斯卡尔重构树

克鲁斯卡尔重构树 又叫并查集重构树 大概在NOI2018之前还是黑科技 现在?烂大街了 主要是针对图上的对边有限制的一类问题 比如每次询问一个点u不能经过边权大于w的边能走到的第k大点权是多少 也就是这个题peaks 首先肯定是一个最小生成树(如果不知道为什么还可以先做货车运输) 我们在并查集合并的时候稍作修改 每次不是fa[x]=y而是fa[x]=fa[y]=++tot 这样相当于新建...

2018-11-29 15:41:00 136

转载 [IOI2018]狼人

[IOI2018]狼人 luogu UOJ 对人形和狼形分别建克鲁斯卡尔重构树 每次询问就是对于两棵树dfs序的一个二维数点,主席树维护 #include<bits/stdc++.h> using namespace std; const int _=4e5+5; int re(){ int x=0,w=1;char ch=getchar(); while(c...

2018-11-29 15:14:00 151

转载 [HEOI2014]南园满地堆轻絮

[HEOI2014]南园满地堆轻絮 BZOJ luogu 二分答案贪心check 首先b[1]最小一定优 之后就贪心的最小化b[i]就行 #include<bits/stdc++.h> using namespace std; const int _=5e6+5; int n,sa,sb,sc,sd,p,ans,a[_],b[_]; int F(int x){return (...

2018-11-28 16:24:00 180

转载 [NOIP2018PJ]对称二叉树

[NOIP2018PJ]对称二叉树 这个题正常人看到题面难道不是哈希? 乱写了个树哈希... #include<bits/stdc++.h> using namespace std; const int _=1e6+5,p=998244353; int re(){ int x=0,w=1;char ch=getchar(); while(ch<'0'||...

2018-11-28 14:24:00 223

转载 [NOIP2018PJ]摆渡车

[NOIP2018PJ]摆渡车 luogu mdPJ组这么难,还好考的TG组 先按t排序 设f[i][j]表示前i个人,第i个人等j分钟的最小总等待时间 这里j是小于2m的 可以考虑最坏情况下,一个人到起点时车刚好出发,m分钟之后回来 然后车又在起点停了m分钟等别人,则这个人一共等了2m分钟 转移分三种情况讨论: 下一个人赶上这趟车,即t[i+1]<=t[i]+j,那么转移到f[i...

2018-11-28 11:35:00 266

转载 [NOIP2018TG]赛道修建

[NOIP2018TG]赛道修建 考场上multiset调不出啊啊啊!!! 首先肯定是二分答案 做树形dp,f[i]表示i点的子树两两匹配后剩下的最长长度 匹配可以用multiset维护 但是菊花图跑得很慢 考虑求出树的直径作为二分上界 #include<bits/stdc++.h> using namespace std; const int _=5e4+5; int re...

2018-11-28 11:29:00 162

转载 [NOIP2018TG]旅行

[NOIP2018TG]旅行 树很简单,对每个点sort儿子,贪心走就行了 基环树呢? 如果是1e5可能不太好做 但是5000的话枚举断边就可以\(n^2\)了 #include<bits/stdc++.h> using namespace std; const int _=5005; int re(){ int x=0,w=1;char ch=getchar(); ...

2018-11-28 11:25:00 123

转载 [BZOJ3551]Peaks

[BZOJ3551]Peaks BZOJ luogu 建Kruskal重构树,点权为边权 按dfn序建出主席树 倍增找到能跳到的最浅的祖先 主席树查询一下 #include<bits/stdc++.h> using namespace std; const int N=1e5+5,M=5e5+5; int re(){ int x=0,w=1;char ch=getch...

2018-11-28 10:22:00 152

转载 NOIP2010~2017部分真题总结

NOIP2010~2017部分真题总结 2010 (吐槽)md这个时候的联赛还只有4题吗? 引水入城 只要发现对于有合法解的地图,每个蓄水厂贡献一段区间这个结论就很好做了 那么\(O(n^3)\)对每个蓄水厂的dfs一遍,判掉有无解之后贪心线段覆盖 所以这是个爆搜+性质+贪心题? 关押罪犯 贪心+并查集 贪心显然正确,那么并查集维护一下每个点的补集就没了 机器翻译 暴力模拟 乌龟棋 dp...

2018-11-09 21:03:00 213

转载 [NOIP2016]天天爱跑步

[NOIP2016]天天爱跑步 luogu BZOJ 神仙题 来看看部分分 #include<bits/stdc++.h> using namespace std; const int N=3e5; int re(){ int x=0,w=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')w...

2018-11-09 19:14:00 285

转载 [luogu3601]签到题

[luogu3601]签到题 luogu 求\[\sum_{i=l}^ri-\phi(i)\] 一个朴素的想法是枚举l~r,根号求\(\phi\),显然这样是\((r-l)\sqrt r\),时间无法承受 考虑怎么优化求\(\phi\)的时间, 我们知道对于一个数x,超过\(\sqrt x\)的质因子最多只有一个 我们考虑对[l,r]的数开vector记录质因子 我们可以线筛求出\(\s...

2018-11-08 20:26:00 154

转载 [CQOI2018]破解D-H协议

[CQOI2018]破解D-H协议 luogu BZOJ 题面看了好久啊... 题意:给定\(A=g^a\mod p,B=g^b\mod p\),求\(g^{ab}\mod p\)(p为质数且g是p的一个原根) 直接bsgs求a,b就好了 #include<bits/stdc++.h> using namespace std; int re(){ int x=0,w=...

2018-11-08 19:13:00 119

转载 [note]高精度模板

高精度模板 先定义一个struct struct gj{ int l,s[N]; bool fh; void Print(){ if(fh)putchar('-'); for(int i=l;i>=1;i--)printf("%d",s[i]); puts(""); } }blank; 高精+高精 加之...

2018-11-08 16:46:00 150

转载 [luogu3393]逃离僵尸岛

[luogu3393]逃离僵尸岛 luogu 先把被禁止的点和新建的虚点n+1连0边 跑最短路,dis<=s的点价格为Q,否则为P, 再建图跑最短路 #define ll long long #include<bits/stdc++.h> using namespace std; const int N=100005,M=500005; int re(){ in...

2018-11-08 16:32:00 275

转载 [BZOJ2818]GCD

[BZOJ2818]GCD BZOJ luogu 求\[\sum_{i=1}^n\sum_{j=1}^n[gcd(i,j)是质数]\] 考虑枚举n以内的质数k(\(10^7\)内大概70万个) 那么每个质数k的贡献\[\sum_{i=1}^n\sum_{j=1}^n[gcd(i,j)=k]\] \[=\sum_{i=1}^{\lfloor\frac{n}{k}\rfloor}\sum_{...

2018-11-08 15:06:00 103

转载 [SCOI2015]情报传递

[SCOI2015]情报传递 BZOJ luogu 考虑什么样的点会对某个询问贡献答案, 设每个点的开始搜集情报时间为\(t_i\),那么每次询问就是要求链上有多少点i满足\[now-t_i>c\] 移项就有\[t_i<now-c\] 相当于求链上满足条件的点数,但是带修改依然不太好做 我们发现对于一个询问后面的修改操作的\(t_i\)一定大于now,所以后面修改的点一定不影...

2018-11-08 14:21:00 131

转载 [NOIP2010]引水入城

[NOIP2010]引水入城 去年看了好久woc不会 今年看了很久nm还是不会 说正事 发现如果所有干旱区都能被覆盖的话,那么每个蓄水厂的贡献一定是一个区间(可以反证), 于是\(O(n^3)\)dfs找出每个蓄水厂的区间,贪心做区间覆盖即可. 注意如果不是所有干旱区都能被覆盖的话,那么就不一定是区间 #include<bits/stdc++.h> using namespa...

2018-11-08 09:59:00 134

转载 [luogu4315]月下“毛景树”

[luogu4315]月下“毛景树” luogu 联赛前复习一发树剖.不会告诉你WA了4发 #define ls x<<1,l,mid #define rs x<<1|1,mid+1,r #include<bits/stdc++.h> using namespace std; const int _=1e5+5; int re(){ int x...

2018-11-08 09:17:00 116

转载 [BZOJ3733]Iloczyn

[BZOJ3733]Iloczyn BZOJ 搜索烂得要死 首先分解质因数,从小到大排序,爆搜 把不合法的全return之后,一个剪枝: 计算还要几个,如果从当前开始往后这么多个数乘起来再乘s>n就return(可行性剪枝) BZOJ机子慢的要死 #define ll long long #include<bits/stdc++.h> using namespace s...

2018-11-07 22:30:00 152

转载 [SDOI2012]Longge的问题

[SDOI2012]Longge的问题 BZOJ luogu 考虑n的每个约数的贡献 求[1,n]有多少i与gcd(i,n)=k 即求\[\sum_{k|n}k\sum_{i=1}^n[gcd(i,n)=k]\] \[=\sum_{k|n}k\sum_{i=1}^{\frac{n}{k}}[gcd(i,\frac{n}{k})=1]\] \[=\sum_{k|n}k\phi(k)\] 由...

2018-11-07 20:53:00 131

转载 [note]可持久化Trie

可持久化Trie 参考可持久化线段树的思想,修改的时候先直接复制,再对需要修改的点新建节点 可持久化Trie也是同样的做法,假设现在需要在原本Trie的基础上插入一个字符串 先把上个Trie的对应节点信息复制过来,对\(son[ch]\)新建节点 void insert(int x,int y,char*st){ int l=strlen(st); for(int i=0...

2018-11-07 17:12:00 103

转载 [ZJOI2006]三色二叉树

[ZJOI2006]三色二叉树 BZOJ luogu 分3种颜色讨论转移一下 #include<bits/stdc++.h> using namespace std; const int _=500005; int n,now; int ls[_],rs[_],r[_],g[_],b[_]; char s[_]; void bu(int u){ if(s[u]=='1...

2018-11-07 17:07:00 199

转载 [ZJOI2005]午餐

[ZJOI2005]午餐 luogu BZOJ 一个很符合常理的贪心,吃得久的先打饭, 于是sort一遍 然后f[i][j]表示前i个人,A窗口打饭用了j分钟,吃完饭的最小时间 枚举第i个人在哪个窗口打饭转移 #define ri register int #include<bits/stdc++.h> using namespace std; const int _=205...

2018-11-07 15:43:00 103

转载 [note]CRT&exCRT

中国剩余定理 别人的blog 假设现在有关于x的同余方程组(p1,p2均为质数) \(x=a_1\pmod {p_1}\) \(x=a_2\pmod {p_2}\) 可以转化成如下形式 \(x=a_1+k_1p_1\) \(x=a_2+k_2p_2\) 联立就有\(a_1+k_1p_1=a_2+k_2p_2\) 显然可以扩欧求一组特解,设为\(k_1',k_2'\) 那么全部的解可以表示...

2018-11-07 11:50:00 119

转载 二项式反演及其证明

二项式反演及其证明 有一类问题是这样的:你可以推出<=i的方案数,你想求出恰好i的方案数 设<=i的方案数为a(i),恰好为i的方案数为b(i) 有\[a(n)=\sum_{i=0}^n\binom{n}{i}b(i)\] 相当于知道a(n),要求b(n) 二项式反演:\[b(n)=\sum_{i=0}^n(-1)^{n-i}\binom{n}{i}a(i)\] 证明: \[...

2018-11-07 09:04:00 643

转载 [CQOI2014]排序机械臂

[CQOI2014]排序机械臂 BZOJ luogu 可以直接预处理出操作序列的下标, 相当于支持每次查询某个下标的排名以及区间翻转 对于询问可以额外记录fa,利用平衡树性质暴力跳fa求rank 区间翻转可以用fhq_treap,很短 #include<bits/stdc++.h> using namespace std; const int _=1e5+5; int re(...

2018-11-06 22:06:00 96

转载 [note]fhq_treap

fhq_treap 这东西据说是某个叫范浩强的神仙搞出来的, 他的这种treap可以不用旋转并且资磁很多平衡树操作, 复杂度通过随机的键值来保证(树大致平衡,期望一次操作复杂度\(logn\)) 依靠核心函数split和merge实现绝大多数操作 首先建树的话可以笛卡尔树优化到\(O(n)\),暴力merge\(O(nlogn)\) 通过以下几个操作进行说明(以下默认权值与v相同spli...

2018-11-06 17:33:00 222

转载 [BZOJ1251]序列终结者

[BZOJ1251]序列终结者 BZOJ luogu 初学fhq_treap,调了真鸡儿久 感觉这东西比splay灵活,核心函数只有split和merge 其实码量倒是差不太多,splay也就一个rotate和一个splay 就把这题做入门题写了嗯嗯 #include<bits/stdc++.h> using namespace std; const int _=5e4+5;...

2018-11-05 20:36:00 94

转载 [note]一类位运算求最值问题

[note]一类位运算求最值问题 给定一些数,让你从中选出两个数a,b,每次询问下列中的一个 1.a and b的最大值 2.a xor b的最大值 3.a or b的最大值 神仙们都是FWT,小蒟蒻只好orz 首先三种问题的思路都是从高位往低位贪心 对于xor,直接枚举每个数Trie树上贪心 对于and,如果可选集合中有大于等于两个数当前位为1,那么答案这一位也是1,并把这一位为0的...

2018-11-05 17:24:00 219

转载 [BZOJ3674]可持久化并查集

[BZOJ3674]可持久化并查集 BZOJ强制在线 BZOJ不强制在线 luogu 博主以为自己学会主席树之后来看这题整个人都是木的(学艺不精) 现在终于敢来写一写了 考虑并查集按大小合并 为了实现可持久化 主席树维护sz和fa就行 版本与版本之间的处理需要注意一下 下面放的是强制在线的code #include<bits/stdc++.h> using namespace...

2018-11-05 14:48:00 223

转载 [luogu3359]改造异或树

[luogu3359]改造异或树 luogu 和之前某道题类似只有删边的话考虑倒着加边 但是怎么统计答案呢? 我们考虑以任意点为根dfs一遍求出每个点到根的路径异或和s[i] 这样任意两点x,y的路径异或和可以表示成s[x] xor s[y] 那么设当前连的边的边权为w,我们要找出被连通的两个连通块中s[x] xor s[y]=w的(x,y)个数 考虑启发式合并,枚举size小的一边,另...

2018-11-04 16:13:00 219

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除