Codeforces Round #686 (Div. 3)补题
这场题目真的很简单,感觉如果能回复手速的话,以后类似的div3能做到AK?
A. Special Permutation
代码
1 | //#pragma comment(linker, "/STACK:102400000,102400000") |
B. Unique Bid Auction
代码
1 | //#pragma comment(linker, "/STACK:102400000,102400000") |
C. Sequence Transformation
代码
1 | //#pragma comment(linker, "/STACK:102400000,102400000") |
D. Number into Sequence
代码
1 | //#pragma comment(linker, "/STACK:102400000,102400000") |
E. Number of Simple Paths
题意
求基环树上简单路径数。
思路
先求出环上到环上的简单路径数,然后统计以环上每个节点为根的子树的大小,每新加入一棵子树,再统计一边贡献。
- 环上路径数 $= n\times(n-1)$
- 一棵树内简单路径数 $= \frac{n\times (n-1)}{2}$
坑点①,子树到树根只有一种路径。
坑点②,环上一个节点可能有多个子树。
代码
1 | //#pragma comment(linker, "/STACK:102400000,102400000") |
F. Array Partition
题意
将一个数组$a$分成三部分$[1,x],[x+1,y],[y+1,n]$,使得$max(1,x)=min(x+1,y)=max(y+1,n)$,请输出这三段的长度。
思路
枚举左面的断点,并且二分右面的断点。
代码
1 | //#pragma comment(linker, "/STACK:102400000,102400000") |