会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end
275307894a
有志者事竟成,破釜沉舟,百二秦关终属楚;苦心人天不负,卧薪尝胆,三千越甲可吞吴。
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
36
37
38
39
40
41
42
43
44
45
下一页
2020年6月27日
luogu P1505 [国家集训队]旅游
摘要: 题面传送门 第一次一遍过国集紫题。好激动。 一看就是树剖,只不过操作有点多。 把每条边的权值放在儿子节点即可。 对于取相反数放懒标记即可。 其他是树剖正常操作。 代码实现: #include<cstdio> #include<cstring> #define max(a,b) ((a)>(b)?(a
阅读全文
posted @ 2020-06-27 21:50 275307894a
阅读(40)
评论(0)
推荐(0)
2020年6月26日
luogu P3038 [USACO11DEC]Grass Planting G
摘要: 题面传送门 这里可以把边权转化成点权,即把边的值放在儿子节点上,这样能确保唯一性。 而这样的话$lca$就不能算了,可以通过$id+1$处理掉。 树状数组维护即可。 代码实现: #include<cstdio> #include<cstring> using namespace std; int n
阅读全文
posted @ 2020-06-26 21:42 275307894a
阅读(55)
评论(0)
推荐(0)
luogu P6098 [USACO19FEB]Cow Land G
摘要: 题面传送门 一眼看上去就是树剖裸题。 线段树无所不能,连异或都可以维护。直接树剖即可。 代码实现: #include<cstdio> #include<cstring> using namespace std; int n,m,k,idea,son[100039],siz[100039],d[100
阅读全文
posted @ 2020-06-26 21:40 275307894a
阅读(56)
评论(0)
推荐(0)
2020年6月25日
luogu P2146 [NOI2015]软件包管理器
摘要: 题面传送门 $NOI$终于出了一道水题。 因为软件包之间有依赖,所以删除一个要把子树删完。安装一个要把路径上全部安装掉。直接树剖即可。 代码实现: #include<cstdio> #include<cstring> using namespace std; int n,m,k,x,y,son[10
阅读全文
posted @ 2020-06-25 22:20 275307894a
阅读(59)
评论(0)
推荐(0)
luogu P3833 [SHOI2012]魔法树
摘要: 题面传送门 直接树链剖分即可,还比模板少两个操作。 代码实现: #include<cstdio> #include<cstring> using namespace std; int n,m,k,x,y,idea,son[100039],d[100039],fa[100039],top[100039
阅读全文
posted @ 2020-06-25 22:17 275307894a
阅读(48)
评论(0)
推荐(0)
luogu P1600 天天爱跑步
摘要: 题面传送门 这道题目蛮好的。 首先暴力不可取,会$T$ 考虑分类讨论,把一段路径分为上行与下行。 设$d_x$为$x$节点的深度,则在上行时被观察到当且仅当$d_v+t_v=d_u$,下行也可推出当且仅当$d_v-t_v=d_u$ 那么直接在树上差分哪一段有贡献。 求答案就是在子树内找与那个数相同的
阅读全文
posted @ 2020-06-25 22:15 275307894a
阅读(48)
评论(0)
推荐(0)
luogu P4427 [BJOI2018]求和
摘要: 题面传送门 看到树,想到树剖。 然而线段树维护不了这么高次项的数啊。 再转眼一看,\(k\leq 50\) 那不就可以直接前缀和了吗? 这道题在省选时极其卡时限,所以可以先预处理出深度的$k$次方。然后直接树上前缀和即可。 代码实现: #include<cstdio> #include<cstrin
阅读全文
posted @ 2020-06-25 22:10 275307894a
阅读(51)
评论(0)
推荐(0)
2020年6月24日
luogu P3258 [JLOI2014]松鼠的新家
摘要: 题面传送门 只有一次查询,想到差分。 那么我们怎么把差分运用到树上呢? 自然要在$lca$上下文章了。 可是不能直接在$lca$上下,得在$fa_$上下,即$f_u++,f_v++,f_{lca(x,y)}--,f_{fa_{lca(x,y)}}--$ 注意不是每个点都出现,我因为这个调了一天。 代
阅读全文
posted @ 2020-06-24 20:21 275307894a
阅读(38)
评论(0)
推荐(0)
luogu P4281 [AHOI2008]紧急集合 / 聚会
摘要: 题面传送门 其实这道弱省省选还蛮简单的。 稍微思考一下我们就可以得出一个结论:集合点肯定在三个点中某两个点的$lca$上。 因为无论这个点朝哪个方向移都是靠近一个点远离两个点肯定不会更优。 所以我们可以先跑出三个点的$lca$然后再分别算答案输出。 但是这样要跑$6$遍$lca$,在$qzezoj$
阅读全文
posted @ 2020-06-24 20:18 275307894a
阅读(47)
评论(0)
推荐(0)
2020年6月21日
树链剖分学习笔记
摘要: 题面传送门 这道题是树剖模板。 树剖第一步:\(dfs1\),找出每个点子树大小,父亲节点,重儿子,深度。 第二步:\(dfs2\),找出每个点编号,把原来的权值赋值过来,先标重儿子再标轻儿子,标记每个链顶。 这里最大的点最多只有$logn$条链。 因为每更换一条链都要一个轻链,而点数会除以$2$
阅读全文
posted @ 2020-06-21 16:12 275307894a
阅读(62)
评论(0)
推荐(0)
lugou P2863 [USACO06JAN]The Cow Prom S
摘要: 题面传送门 这道题很明显是要我们求强连通分量。我们可以用$Tarjan$求。 对于$Tarjan$的求法,是这样做的: 记录第几个访问到:用一个$dfn$数组。 记录这个点的子树能访问到的最早访问到的点,为$low$。 记录一个栈,表示没有弹出的点。 记录$vis$,表示是否在栈里。 对于每个点,从
阅读全文
posted @ 2020-06-21 16:01 275307894a
阅读(55)
评论(0)
推荐(0)
2020年6月20日
luogu P3225 [HNOI2012]矿场搭建
摘要: 题面传送门 感觉这道紫题质量还是可以的。 我们先跑一遍$Tarjan$求出图的割点,然后根据割点将图割开。对于每个连通块,分类讨论: 如果没有接触到割点,那么要设两个点,因为要考虑原来那个塌了的情况。方案数乘上$C^{2}_$ 如果只有一个割点,那么为了防止割点崩塌,得设一个,方案数乘上$n$ 如果
阅读全文
posted @ 2020-06-20 20:01 275307894a
阅读(48)
评论(0)
推荐(0)
2020年6月16日
fxtoi FLYing
摘要: 题面传送门 这是一道主席树的模板题。 很遗憾,被我卡掉了 lxl 显然这么小的空间主席树是肯定过不去的,空间复杂度$O(4nlogn)$,开满约$110M$,只有$80$分。 考虑优化。 我们的主席树的划分是这么写的 m=(l+r)>>1 之所以要开四倍空间,是因为会有这样的东西所以不能用主席树。
阅读全文
posted @ 2020-06-16 18:34 275307894a
阅读(99)
评论(0)
推荐(0)
2020年6月13日
CF438D The Child and Sequence
摘要: 题面传送门 明显势能线段树。 这里证明一下取模的下界。 对于一个数$x$,若取模的数$y>\frac{2}$,那么$x%y=x-y<\frac{2}$,若取模的数$y<\frac{2}$,那么$x%y<y<\frac{2}$,则一个数至多取模$logn$次就会为$1$。 修改至多会增加$logn$次
阅读全文
posted @ 2020-06-13 19:59 275307894a
阅读(64)
评论(0)
推荐(0)
2020年6月9日
CF920F SUM and REPLACE
摘要: 题面传送门 一眼就是势能线段树的模板题。 关于欧拉函数的上界我不会证,这里证一个复杂度下界。 对于每一个数$x$,其最大的约数最大是$\frac{2}\(,故对于每一个\)\frac{2}<y<x$都必定不是$x$的约数,所以复杂度下界$logn$,总复杂度$nlogn$ 代码实现: #includ
阅读全文
posted @ 2020-06-09 18:39 275307894a
阅读(60)
评论(0)
推荐(0)
2020年6月6日
luogu P3478 [POI2008]STA-Station
摘要: 题面传送门 明显是换根$dp$,转移时讨论一下就好了。 代码实现: #include<cstdio> #include<cstring> #define max(a,b) ((a)>(b)?(a):(b)) using namespace std; int n,m,k,head,h[1000039]
阅读全文
posted @ 2020-06-06 21:52 275307894a
阅读(36)
评论(0)
推荐(0)
NOI online R3游记
摘要: \(tg\): 开场感觉$pj$的第一题出到$tg$来了(滚粗$flag+1$)然后用前缀和水水就过了。第二题感觉像是矩乘板子,推了一下确实满足交换律,然后就打了一个矩阵快速幂(滚粗$flag+2$),感觉复杂度$O(qn^3logn)$很不可行,于是写了一些常数优化,最后也没卡进$1s$。第三题匆
阅读全文
posted @ 2020-06-06 21:50 275307894a
阅读(49)
评论(0)
推荐(0)
2020年5月30日
luogu P2943 [USACO09MAR]Cleaning Up G
摘要: 题面传送门 显然可以$dp$ $n^2$暴力$dp$很好想,循环时直接更新答案即可。 考虑优化。 显然,如果每$1$头牛都分成$1$组,那么代价为$n$,所以我们每次枚举状态时种类不能超过$\sqrt n$,否则为无用转移。 那$\sqrt n$种类数之内的最左端点怎么搞呢? 显然可以尺取法。跑$\
阅读全文
posted @ 2020-05-30 21:41 275307894a
阅读(43)
评论(0)
推荐(0)
luogu P6569 [NOI Online #3 提高组]魔法值
摘要: 题面传送门 一眼看上去就是矩乘套路题。 又因为异或满足交换律与结合律,所以确定可以矩乘。 但是对于每个询问直接矩乘显然复杂度$O(qn3logn)$会$T$ 因为是$01$矩乘,又因为询问只问了$1$号点,所以可以拿原来$1$的向量乘以预处理的矩阵,复杂度降为$O(n3logn)-O(qn^2log
阅读全文
posted @ 2020-05-30 21:29 275307894a
阅读(72)
评论(0)
推荐(0)
2020年5月26日
luogu P6567 [NOI Online #3 入门组]买表
摘要: 题面传送门 来一发不用单调队列的解法。 循环还是单调队列的循环,只不过把单调队列换成一个变量记录有几个$1$,循环时加减一下就好了。时间复杂度$O(nm)$ 代码实现: #include<cstdio> #define max(a,b) ((a)>(b)?(a):(b)) #define min(a
阅读全文
posted @ 2020-05-26 20:05 275307894a
阅读(91)
评论(0)
推荐(0)
luogu P6566 [NOI Online #3 入门组]观星
摘要: 题面传送门 直接$bfs$即可。 代码实现: #include<cstdio> #include<queue> #define max(a,b) ((a)>(b)?(a):(b)) using namespace std; int a[1539][1539],x,y,n,m,k,ans,tot,pu
阅读全文
posted @ 2020-05-26 20:00 275307894a
阅读(157)
评论(0)
推荐(0)
luogu P6565 [NOI Online #3 入门组]最急救助
摘要: 题面传送门 没啥好说的,模拟即可。 #include<cstdio> #include<iostream> #include<cstring> #define max(a,b) ((a)>(b)?(a):(b)) using namespace std; int n,m,k,ans,tot,pus,
阅读全文
posted @ 2020-05-26 19:37 275307894a
阅读(132)
评论(0)
推荐(0)
2020年5月24日
P6568 [NOI Online #3 提高组]水壶
摘要: 题面传送门 显然是全部把$k$个倒到一个水壶中最优。 那么我们可以前缀和。枚举右端点,利用前缀和算左端点。 #include<cstdio> #define max(a,b) ((a)>(b)?(a):(b)) using namespace std; int n,m,k,a[1000039],q[
阅读全文
posted @ 2020-05-24 16:24 275307894a
阅读(172)
评论(0)
推荐(0)
2020年5月23日
luogu P3047 [USACO12FEB]Nearby Cows G
摘要: 题面传送门 显然可以$dp$ 第一次$dfs$,定义$f_{i,j}$为在$i$子树下距离在$j$以内的总和。 第二次可以容斥,用父亲节点的减去儿子节点的值。 代码实现: #include<cstdio> #include<cstring> using namespace std; int n,m,
阅读全文
posted @ 2020-05-23 21:50 275307894a
阅读(49)
评论(0)
推荐(0)
2020年5月15日
CF242E XOR on Segment
摘要: 题面传送门 看着像线段树。 直接二进制拆掉就可以取反操作了。 拆掉以后就是异或$1$或者$0$的操作了。 时间复杂度$O(26nlogn)$ 代码实现: #include<cstdio> using namespace std; int n,m,k,x,y,zs,head,a[100039],f1[
阅读全文
posted @ 2020-05-15 19:53 275307894a
阅读(57)
评论(0)
推荐(0)
上一页
1
···
36
37
38
39
40
41
42
43
44
45
下一页
公告
浏览器标题切换
浏览器标题切换end