军营
[NOIP2022] 建造军营 题解
[NOIP2022] 建造军营 题解 Part I 观察 注意到如果删掉的边在一个边双连通分量里面,那么无论如何都不会影响 A 国,所以 B 国只会删掉桥,于是把图边双缩点之后,同一个边双里面的点要么都不选,要么随便选至少一个。 Part II DP 再次发现军营一定是一个极大的连通块,所以可以考虑 ......
P8867 [NOIP2022] 建造军营
缩点 首先考虑对于一个边双内的边是可以任意看守或者不看守的,所以可以缩点,这样缩完点的图就成了一棵树。 对于缩完点后的每一个边双,我们设 \(E_{i}\) 表示边双 \(i\) 内的边的个数,\(siz_{i}\) 表示边双内点的个数。 那么只考虑一个边双的情况的话,边能任选的方案数就是 \(2^ ......
P8867 [NOIP2022] 建造军营
面对他。 题面: 求选择关键点和不会被割的边,使得任意割去一条边关键点不会有不连通的方案。 考虑缩边双,然后这样边双内随便选。 你考虑画出一颗树,考虑分类情况,容易发现就是三种: 1.没有选。 2.全部连通上 \(x\)。(即一个尚未孤立的连通块)。 3.有不联通到 \(x\) 的点。(即孤立的一个 ......
P8867 [NOIP2022] 建造军营
这道题想了很久,终于想出来了,非常抽象。 经过一番无脑推导,我们发现u里面有没有军营,是否与根连通,u的子树有没有军营,……都对方案数有影响,然后我就一直修修改改,事实证明,当发现越来越多题目条件中被忽略的细节时,一定不要嫌麻烦,要从头开始设置状态。 首先我们发现,子树中有没有军营对于与子树相连的边 ......
【22NOIP提高组】建造军营(barrack)
include<bits/stdc++.h> using namespace std; using ll=long long; const ll M = 1e9+7; ll fast_pow(ll a,ll b){ ll res = 1; while(b>0){ if(b&1)res=(resa)% ......
【NOIP2022】建造军营
# 题面 ## 题目描述 A 国与 B 国正在激烈交战中,A 国打算在自己的国土上建造一些军营。 A 国的国土由 $n$ 座城市组成,$m$ 条双向道路连接这些城市,使得**任意两座城市均可通过道路直接或间接到达**。A 国打算选择一座或多座城市(**至少一座**),并在这些城市上各建造一座军营。 ......