- 博客(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
174
转载 [THUWC2017]在美妙的数学王国中畅游
[THUWC2017]在美妙的数学王国中畅游luoguBZOJ以前的一道考题,那时候lct什么的不会的现在,泰勒展开什么的不会的但如果把公式这么明显地给了你就是让你对这三个函数求n次导直到精度达到要求博猪是求了12次\((sinx)'=cosx\)\((cosx)'=-sinx\)\((e^x)'=e^x\)\((ax+b)'=a\)\((a)'=0\)然后这里...
2018-12-13 14:29:00
182
转载 [清华集训2016]温暖会指引我们前行
[清华集训2016]温暖会指引我们前行UOJBZOJlct维护最大生成树和链上的边权和#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
165
转载 [清华集训2014]奇数国
[清华集训2014]奇数国luoguUOJ题意其实是让单点修改,区间求\(\varphi\)还保证分解之后只会有前60个质数那么用60个线段树维护区间和即可还有巧妙的做法是把60个质数是否存在压在long long中线段树维护考试谁管那么多...然后BZOJ硬是T了...#define ri register int#define ls x<<1,l,mi...
2018-12-11 09:02:00
158
转载 [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
89
转载 [NOI2014]魔法森林
[NOI2014]魔法森林UOJBZOJluogu把边以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
127
转载 [清华集训2014]玛里苟斯
[清华集训2014]玛里苟斯UOJBZOJ对于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
121
转载 [清华集训2016]汽水
[清华集训2016]汽水UOJBZOJ这是一个常数大的人过不了的算法分数规划套点分治,暴力离散化然后树状数组查询复杂度:\(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
157
转载 [清华集训2016]组合数问题
[清华集训2016]组合数问题UOJBZOJ通过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
137
转载 [note]克鲁斯卡尔重构树
克鲁斯卡尔重构树又叫并查集重构树大概在NOI2018之前还是黑科技现在?烂大街了主要是针对图上的对边有限制的一类问题比如每次询问一个点u不能经过边权大于w的边能走到的第k大点权是多少也就是这个题peaks首先肯定是一个最小生成树(如果不知道为什么还可以先做货车运输)我们在并查集合并的时候稍作修改每次不是fa[x]=y而是fa[x]=fa[y]=++tot这样相当于新建...
2018-11-29 15:41:00
100
转载 [IOI2018]狼人
[IOI2018]狼人luoguUOJ对人形和狼形分别建克鲁斯卡尔重构树每次询问就是对于两棵树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
109
转载 [HEOI2014]南园满地堆轻絮
[HEOI2014]南园满地堆轻絮BZOJluogu二分答案贪心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
124
转载 [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
176
转载 [NOIP2018PJ]摆渡车
[NOIP2018PJ]摆渡车luogumdPJ组这么难,还好考的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
192
转载 [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
127
转载 [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
92
转载 [BZOJ3551]Peaks
[BZOJ3551]PeaksBZOJluogu建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
106
转载 NOIP2010~2017部分真题总结
NOIP2010~2017部分真题总结2010(吐槽)md这个时候的联赛还只有4题吗?引水入城只要发现对于有合法解的地图,每个蓄水厂贡献一段区间这个结论就很好做了那么\(O(n^3)\)对每个蓄水厂的dfs一遍,判掉有无解之后贪心线段覆盖所以这是个爆搜+性质+贪心题?关押罪犯贪心+并查集贪心显然正确,那么并查集维护一下每个点的补集就没了机器翻译暴力模拟乌龟棋dp...
2018-11-09 21:03:00
112
转载 [NOIP2016]天天爱跑步
[NOIP2016]天天爱跑步luoguBZOJ神仙题来看看部分分#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
210
转载 [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
112
转载 [CQOI2018]破解D-H协议
[CQOI2018]破解D-H协议luoguBZOJ题面看了好久啊...题意:给定\(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
85
转载 [note]高精度模板
高精度模板先定义一个structstruct 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
113
转载 [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
236
转载 [BZOJ2818]GCD
[BZOJ2818]GCDBZOJluogu求\[\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
62
转载 [SCOI2015]情报传递
[SCOI2015]情报传递BZOJluogu考虑什么样的点会对某个询问贡献答案,设每个点的开始搜集情报时间为\(t_i\),那么每次询问就是要求链上有多少点i满足\[now-t_i>c\]移项就有\[t_i<now-c\]相当于求链上满足条件的点数,但是带修改依然不太好做我们发现对于一个询问后面的修改操作的\(t_i\)一定大于now,所以后面修改的点一定不影...
2018-11-08 14:21:00
98
转载 [NOIP2010]引水入城
[NOIP2010]引水入城去年看了好久woc不会今年看了很久nm还是不会说正事发现如果所有干旱区都能被覆盖的话,那么每个蓄水厂的贡献一定是一个区间(可以反证),于是\(O(n^3)\)dfs找出每个蓄水厂的区间,贪心做区间覆盖即可.注意如果不是所有干旱区都能被覆盖的话,那么就不一定是区间#include<bits/stdc++.h>using namespa...
2018-11-08 09:59:00
100
转载 [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
88
转载 [BZOJ3733]Iloczyn
[BZOJ3733]IloczynBZOJ搜索烂得要死首先分解质因数,从小到大排序,爆搜把不合法的全return之后,一个剪枝:计算还要几个,如果从当前开始往后这么多个数乘起来再乘s>n就return(可行性剪枝)BZOJ机子慢的要死#define ll long long#include<bits/stdc++.h>using namespace s...
2018-11-07 22:30:00
118
转载 [SDOI2012]Longge的问题
[SDOI2012]Longge的问题BZOJluogu考虑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
89
转载 [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
80
转载 [ZJOI2006]三色二叉树
[ZJOI2006]三色二叉树BZOJluogu分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
139
转载 [ZJOI2005]午餐
[ZJOI2005]午餐luoguBZOJ一个很符合常理的贪心,吃得久的先打饭,于是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
72
转载 [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
87
转载 二项式反演及其证明
二项式反演及其证明有一类问题是这样的:你可以推出<=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
559
转载 [CQOI2014]排序机械臂
[CQOI2014]排序机械臂BZOJluogu可以直接预处理出操作序列的下标,相当于支持每次查询某个下标的排名以及区间翻转对于询问可以额外记录fa,利用平衡树性质暴力跳fa求rank区间翻转可以用fhq_treap,很短#include<bits/stdc++.h>using namespace std;const int _=1e5+5;int re(...
2018-11-06 22:06:00
61
转载 [note]fhq_treap
fhq_treap这东西据说是某个叫范浩强的神仙搞出来的,他的这种treap可以不用旋转并且资磁很多平衡树操作,复杂度通过随机的键值来保证(树大致平衡,期望一次操作复杂度\(logn\))依靠核心函数split和merge实现绝大多数操作首先建树的话可以笛卡尔树优化到\(O(n)\),暴力merge\(O(nlogn)\)通过以下几个操作进行说明(以下默认权值与v相同spli...
2018-11-06 17:33:00
145
转载 [BZOJ1251]序列终结者
[BZOJ1251]序列终结者BZOJluogu初学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
59
转载 [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
168
转载 [BZOJ3674]可持久化并查集
[BZOJ3674]可持久化并查集BZOJ强制在线BZOJ不强制在线luogu博主以为自己学会主席树之后来看这题整个人都是木的(学艺不精)现在终于敢来写一写了考虑并查集按大小合并为了实现可持久化主席树维护sz和fa就行版本与版本之间的处理需要注意一下下面放的是强制在线的code#include<bits/stdc++.h>using namespace...
2018-11-05 14:48:00
177
转载 [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
153
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人