第一次考場見重構樹
我們按點從小到大依次插入
不太好描述,先上碼:
for(re int i=2;i<=n;i++)
}}
那乙個點到他重構樹的子樹內的點的路徑最小值一定為該點
則若 \((i,j)\) 滿足條件,那麼在兩棵重構樹內兩點肯定互為祖先
此題完結
code
#include #define re register
// #define int long long
#define ll long long
#define pir make_pair
#define fr first
#define sc second
#define db double
#define pb push_back
using namespace std;
const int mol=998244353;
const int maxn=2e6+10;
const int inf=1e9+10;
inline int qpow(int a,int b) return ans; }
inline int read()
while(ch>='0'&&ch<='9')
return s*w;
}int n,tot,fa[maxn],dfn[maxn],size[maxn]; ll ans;
struct edge edge[maxn<<1];
int head[maxn],cnt;
inline void add(int a,int b) ; head[a]=cnt; }
inline int find(int a)
namespace stg }
inline ll quy(int pos) return ans; }
}vectorvec[maxn];
inline void clear()
inline void dfs1(int now)
}inline void dfs2(int now)
stg::ins(dfn[now],-1);
}signed main(void)
clear();
for(re int i=2;i<=n;i++) }}
dfs2(1);
printf("%lld\n",ans);
}
多校4 櫥櫃
include include include include includeusing namespace std int s1 400100 int s2 400100 struct node struct cmp int main int i,j,m,n while scanf d d n,m...
多校聯賽總結
首先是一些資料 2014 multi university training contest 1 by fzu a 數學 費馬小定理 b 網路流 最小k路徑覆蓋 c 樹形dp 樹的重心 資料結構 d 貪心 巧妙 e 數學 dp 隱含馬爾科夫模型 f 線段樹 函式式 二分 g 線段樹 狀態壓縮 h 模...
多校聯賽 Envy
我們讓 n 個人站成一排,編號為 1 n,每個人都有乙個數字代表他這次比賽的成績,對於每個人,如果他後面 編號大於他的人中 存在乙個人的成績大於等於他,那麼他的嫉妒值為他們之間的距離。兩個點 a和 b 之間的距離為 abs a b 例如 4,3,6,2 那麼第 1 個人對第 3 個人有 2 點嫉妒值...