我是靠谱客的博主 如意嚓茶,最近开发中收集的这篇文章主要介绍19年举办的THUWC2020(aka THUWC2019-2)题意回忆+部分口胡题解D1T1D1T2D1T3D2T1D2T2D2T3,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

由于博主很菜,不保证回忆准确无误。

D1T1

题意:

你有一个长度为 k ( k ≤ 20 ) k(kleq 20) k(k20) 的序列,有 n ( n ≤ 1 e 5 ) n(nleq 1e5) n(n1e5) 次操作,每次操作会给你一个长度为 k k k 的序列 b b b 和一个位置 p p p ,假设你当前手里序列是 a a a,如果 b p > a p b_p > a_p bp>ap 就会将 a a a 序列整个替换成 b b b

操作序列在初始时告诉你且不会修改。

现在有 q ( q ≤ 1 e 5 ) q(qleq 1e5) q(q1e5) 次询问,每次给出初始序列 a a a ,问在执行了操作序列中的操作之后的最终序列长什么样子。

时限 3 s 3s 3s

口胡:

签到题,由于替换是整个操作,我们处理出原序列被替换成了某个序列的答案,然后对于询问,找到第一次替换发生的位置即可。

预处理直接倒着来就行了。注意我们需要维护前缀最大值,要开一个单调栈。

D1T2

题意:

给你一个有向图 G = { V , E } , ( ∣ V ∣ ≤ 1 e 5 , ∣ E ∣ ≤ 1.5 e 5 ) G={V,E},(|V| leq 1e5,|E| leq 1.5e5) G={V,E},(V1e5,E1.5e5) ,每条边有经过次数的限制。

q ( q ≤ 3 e 5 ) q(qleq 3e5) q(q3e5)次询问(但是我看ouuan说是 q ≤ 1 e 5 qleq 1e5 q1e5?),每次给一个初始位置 u u u 和步数限制 s s s,按照如下规则进行游走:

  1. 如果当前点没有可以走的出边或者已经达到步数限制,结束。
  2. 否则选择所有出边中编号最小的,走过去。

游走是具有后效性的,即每条边被经过的次数在全局进行统计,而不会在每个询问后进行重置

时限 8 s 8s 8s

口胡:

这道题算是救了我一命,幸好这道题调出来了,不然我可能就真的凉了。

把每个点的当前选择的出边拎出来,显然是一个基环树森林。

直接LCT维护基环树森林,对于询问大力分类讨论就行了。

一个小时能A的我请你嚯冰阔落

D1T3

题意:

现在网上找得到的题意都是已经转化过的,我来口胡一个隐约记得的未转化的题意。

给一棵大小为 n ( n ≤ 3 e 5 ) n(nleq 3e5) n(n3e5) 树,定义 d i s ( u , v ) dis(u,v) dis(u,v) 为两点树上路径需要经过的边数。

q ( q ≤ 6 e 5 ) q(qleq 6e5) q(q6e5)次询问,每次给一个区间 [ l , r ] [l,r] [l,r],问标号在 [ l , r ] [l,r] [l,r] 的点集 S S S 有多少个子集满足是 X − 连 通 X-连通 X 的,( X X X 是一个开始就给好了的变量)

定义两个点 u , v u,v u,v X − 关 联 X-关联 X 的,当且仅当以下条件成立:

  1. 存在一个点的序列 p p p,长度为 t t t,使得 p 1 = u , p t = v p_1=u,p_t=v p1=u,pt=v
  2. 对于 1 ≤ i < t 1leq i < t 1i<t d i s ( p i , p i + 1 ) ≤ X dis(p_i,p_{i+1})leq X dis(pi,pi+1)X
  3. 对于 1 ≤ i ≤ t 1leq ileq t 1it l ≤ p i ≤ r lleq p_i leq r lpir

定义一个点集 V ⊆ S Vsubseteq S VS X − 连 通 X-连通 X 的,当且仅当以下条件成立:

  1. 对于任意 u , v ∈ V u,vin V u,vV u , v u,v u,v X − 关 联 X-关联 X 的。
  2. 对于任意 u ∈ V , v ∈ S / V uin V,vin S/V uV,vS/V u , v u,v u,v 不是 X − 关 联 X-关联 X 的。

时限 6 s 6s 6s

题解:

容易发现就是要把距离不超过 X X X 的点连边,然后求 [ l , r ] [l,r] [l,r] 的导出子图连通块个数,转化题意用不了多少时间。

我现在也不会,放一个神仙发在UOJ群里的题解

在这里插入图片描述

D2T1

题意:

你有一个初始值 s ( ∣ s ∣ ≤ 15 ) s(|s|leq 15) s(s15),和 n ( n ≤ 15 ) n(nleq 15) n(n15) 次变换操作,第 i i i次操作形如 s = a i ∣ s ∣ + b i ⋅ s + c i s=a_i |s|+b_i cdot s+c_i s=ais+bis+ci

请你调整操作的顺序,最大化最终 s s s 的值。

∣ a ∣ , ∣ b ∣ , ∣ c ∣ ≤ 15 |a|,|b|,|c|leq 15 a,b,c15,时限 1 s 1s 1s

口胡:

听说很多错误做法能过pp。。。

一个比较naive的想法是维护最大最小值,大于 0 0 0的最小值和小于0的最大值。

最大最小值就可以维护了,但是后面两个东西目前仍然有点尴尬。

注意到 s s s实际上变成了 ( a + b ) s + c (a+b)s+c (a+b)s+c 或者 ( b − a ) s + c (b-a)s+c (ba)s+c,也就是 k s + c ks+c ks+c 的形式。

k = 0 k=0 k=0的情况直接判掉不管,否则 ∣ k s ∣ |ks| ks 的值相对于 s s s 总是不减的,后面一个 c c c 最多导致绝对值变化 15 15 15

维护 − 225 -225 225 225 225 225 的可达性即可。

复杂度视实现从 O ( 2 n ∑ c ) O(2^nsum c) O(2nc) O ( 2 n n ∑ c ) O(2^nnsum c) O(2nnc) ,不过由于根本卡不满所以能过。

D2T2

题意:

给一张 D A G DAG DAG G = { V , E } ( ∣ V ∣ ≤ 1 e 5 , ∣ E ∣ ≤ 1.5 e 5 ) G={V,E}(|V|leq 1e5,|E|leq 1.5e5) G={V,E}(V1e5,E1.5e5),令 T T T G G G D F S DFS DFS 树(优先 D F S DFS DFS 编号小的节点)。 q q q 次询问 ( q ≤ 1 e 5 ) (qleq 1e5) (q1e5) ,每次给两个点 u , v u,v u,v,保证 u u u v v v 的祖先,请你回答在删掉 u , v u,v u,v 树上路径的所有边之后,有多少点无法从 1 1 1 号点到达。

时限 1 s 1s 1s

口胡

一个比较显然的想法是对于每个点 u u u ,求出最高的一个祖先 f u f_u fu,使得 f u f_u fu 能够不经过 < u , f u > <u,f_u> <u,fu> 树上路径上的边到达 u u u

先考虑在知道 f u f_u fu 之后怎么处理询问,对于点 u u u ,在 f u f_u fu 处我们就可以将 [ i n [ u ] , o u t [ u ] ] [in[u],out[u]] [in[u],out[u]] 标记为可达。那么询问 ( a , b ) (a,b) (a,b) 的时候我们需要的就是 a a a 到根的合法区间的并在 [ i n [ b ] , o u t [ b ] ] [in[b],out[b]] [in[b],out[b]] 中有多少元素。

可持久化线段树即可。

回到开头,怎么求 f u f_u fu

下来想了半天总算想明白了,类似半支配点的求法,按照DFS序倒着处理,对于 u u u,我们枚举除了父亲以外所有能够到 u u u的点,很容易注意到我们要求的就是这些点在反图中不经过 u u u的任何祖先边,能够到达的最高的 u u u的祖先,直接带权并查集维护一下就行了。(和求半支配点唯一的区别就是不能考虑父亲)

MD这才是D2签到题,我真TM是个铁憨憨

D2T3

给一棵树 ( n ≤ 5 e 5 ) (nleq 5e5) (n5e5),不修改,有 q ( q ≤ 5 e 5 ) q(qleq 5e5) q(q5e5) 次询问,每次给一条有向路径和一个数 k k k ,询问把路径上的点的序列拿出来,求有多少个序列在经历了 k k k 轮冒泡排序后得到该序列。

时限 4 s 4s 4s

不会

翻到一篇题解,还没看:here。

最后

以上就是如意嚓茶为你收集整理的19年举办的THUWC2020(aka THUWC2019-2)题意回忆+部分口胡题解D1T1D1T2D1T3D2T1D2T2D2T3的全部内容,希望文章能够帮你解决19年举办的THUWC2020(aka THUWC2019-2)题意回忆+部分口胡题解D1T1D1T2D1T3D2T1D2T2D2T3所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部