ZR 2025 NOIP 二十连测 Day 8

怎么又挂分 /fn


25noip二十连测day8

链接:link
题解:题目内

时间:4h (2025.10.23 14:00~18:00)
题目数:4
难度:

A B C D
\(\color{#FFC116} 黄\) \(\color{#52C41A} 绿\) \(\color{#3498DB} 蓝\) \(\color{#9D3DCF} 紫\)
*1400 *1900 *2500 *?

估分:100 + 100 + 20 + 10 = 230
得分:100 + 70 + 20 + 10 = 200
Rank:39/127


场祭

读题。草 A 怎么又是神必结论题 /jk

思考 A 20min 无果,于是开 B,欸这不某场 USACO 创飞我的那个 gcd 题吗?是 P11841,欸不对怎么降黄了 /fad

类似那个题,把每个 \((a,b)\) 表示成 log 个 \((ka+b,a)\) 的形式,然后每次查询的 \((x,y)\) 只需要对于 \((k'y+x',y)\),查一下有多少个 \((ka+b,a)\) 满足 \(x'=b \land y=a \land k \ge k'\) 就可以了,显然直接二分。

由于害怕 ZR 的机子又会卡我 vector,所以把所有东西都塞到了一个 vector 里,按照 \(a,b,k\) 排个序,然后再用 umap 记录下 \((a,b)\) 的起始位置和结束位置,就可以二分了。测大样例跑了 2.4s,哦换成 map 就只有 1.4s 了(

回去看 A,感觉应该并不会太难,不然不会放这么多不可以总司令的分的。奋力思考 30min 终于发现了一个必要条件:如果相邻两个点在鬼的路径上的距离 \(\ge 3\),则人一定能赢,看起来很对,样例都没问题,所以直接必要当充分写了。

开 C,差不多会 30pts 的部分分。

开 D,嗯?这不直接类似线段树分治,把修改拆成 log 段,然后线段树节点维护一个 set 和一个答案就可以了?写写写,发现确实挺不好写的,调调调……然后用了 1h 才发现假完了。。因为计算答案的时候上面的段的 set 不会算下面的段的 set,这就导致了只传 ans 是不行的。。。

早知道就不冲正解了呜呜呜 /dk

然后就只打暴力了。。不然说不定 D 还能拿点特殊性质呢。


补题

诶诶我 B 怎么 T 了 /kel,看了和题解做法一样啊……

哦我草,注意到会往 vector 里面塞 \(O(n \log V) \approx 6 \times 10^6\) 个东西,然后又用 map 维护位置,空间开销是可怕的。

于是不用 map 统计,直接在原 vector 上二分,就过了。。

我的 30pts 啊呜呜 /dk,好像(并非好像,就是)最近不止一次因为不注意 STL 的空间开销而挂分了呢……

补 C,比较 ad-hoc 的一个题。

要求的东西比较奇怪,考虑该如何去更好地刻画这个东西。发现 \(G1\) 可以视作 \(2 \sim n\)\(n-1\) 个点分别选一条边指向比本身编号小的点,\(G2\) 反之。那么就是要给这总共 \(2(n-1)\) 个点分别匹配一条边,总共也是 \(2(n-1)\) 条边。

哦对了自环显然无解,判掉。

继续考虑,发现一条边最多只可能匹配给两个点,不妨令一条边连接的两个点 \(u,v\) 满足 \(u<v\),那么它们在 \(G1,G2\) 上对应的点 \(u_1,v_1,u_2,v_2\),显然只可能连 \(v_1 \to u_1\)\(u_2 \to v_2\) 这两条边,也就是说这条边只能匹配给 \(v_1,u_2\) 中的一个。

于是,就得到了 \(2(n-1)\) 条形如「在 \(x,y\) 中选一个使其合法」的限制,要求的问题是「使得每个点恰好合法一次的方案数」。

不难注意到,点数和限制数都是 \(2(n-1)\),所以不妨把限制当作边建图(注意此处建的图和原题中给的图不是一样的,有本质上的区别),于是就得到了一个有 \(2(n-1)\) 个点、\(2(n-1)\) 条边的图,问题就变成了「给每条边确定一个方向,使得每个点的入度均为 \(1\)(即恰好被指了一次)」。

显然这个图是由若干个连通块组成的,不难发现若某个连通块内 \(|V|<|E|\) 则一定无解,因为这样会导致至少一个点会被指两次。又因为图的总边数和点数相等,所以每个连通块的点数和边数一定相等,也就是形成了一棵基环树

而我们又知道给基环树上的边定向显然只有 \(2\) 种方案,于是答案就是 \(2^{\text 连通块个数}\)

尝试补 D,尝试失败,因为要用到 ODT,找时间补一补吧。


天依宝宝可爱!

posted @ 2025-10-23 20:08  little__bug  阅读(4)  评论(0)    收藏  举报