提高组模拟赛(三)游记

2022-07-28,,

为啥我要写这玩意儿呢?我也不知道 😂

比赛的传送门,

T

1

\tt T1

T1

考场上的草稿:

2x <= y 则 x'=2x
	否则 x' = x-(y-x) = 2x-y

	等价于 x*2^k 取模 y !我的天哪!

然后就很棒。因为

2

x

=

y

2x=y

2x=y 的时候不能取模。死掉了

40

p

t

s

40pts

40pts

T

2

\tt T2

T2

唯一没有爆掉的题目 😢

但是消耗了我很多时间。搞得后面两道题只有

2

h

2h

2h 可用。烦。

T

3

\tt T3

T3

一开始想动态

d

p

\tt dp

dp ,直接自闭。为啥我要想一些不 noip 的算法啊!

然后意识到这是个树剖的垃圾题。淦。结果细节多惨了。

比较重要的是,树剖中线段树维护的

l

,

r

l,r

l,r 不是节点编号,而是

d

f

n

\tt dfn

dfn 。千万注意。

另一个重要细节是,线段树的标记有多个时,顺序很重要 !我以为直接用

v

a

l

=

+

{\tt val}=+\infty

val=+ 就可以代替 “ 清空 ” 标记,事实上不行。

而且树剖很不熟练了。最初,我每个节点本身都是一条重链。

所以我把出错的部分拿出来,以此为戒。

if(son[x]) dfs(son[x],tc);

tmp[dfn[i]] = dep[i];
val[o] = min(val[o],v-2*tmp[r]); // 不是 -2*dep[r]

tag[o] = true; // kill them all!

T

4

\tt T4

T4

最近(可能两周前么?)才看到

C

o

l

o

r
  

a
  

T

r

e

e

\tt Color\; a\; Tree

ColoraTree 这道题,然后秒懂。

结果勇士的血量不用 long long 直接爆零见祖宗。

int_ hp; scanf("%lld",&hp);

后记

F

r

e

o

p

e

n

\tt Freopen

Freopen 对我说过的:“你会发现其他都是虚的,是假的。只有把代码打出来才是真的。其他都没用,最重要的是

1

h

1h

1h 写完代码、对拍、数据生成器。”

可惜我记性不好。

本文地址:https://blog.csdn.net/qq_42101694/article/details/109248291

《提高组模拟赛(三)游记.doc》

下载本文的Word格式文档,以方便收藏与打印。