| Rank | Solved | A | B | C | D | E | F | G | H | I | J | k | L |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ?/? | 7/12 | O | O | O | . | O | Ø | Ø | Ø | O | . | O | O |
O: 当场通过
Ø: 赛后通过
.: 尚未通过
A Chessboard
solved by chelly
chelly’s solution
把每个行和每个列抽象成一个点。
- 第iii行向第i+1i+1i+1行连边,第jjj列向第j−1j-1j−1列连边,费用是000,容量根据限制条件来
- SSS向第111行连边,第111列向TTT连边,费用是000,容量根据限制条件来
- 如果第kkk个棋子的坐标是(i,j)(i,j)(i,j),那么第iii行向第jjj列连边,费用是kkk,容量是1
从S−>TS->TS−>T求最大费用可行流即可。
注意离散化只需要对棋子坐标离散化,对与限制不需要离散化,不然会TLE。
B Build Tree
solved by chelly&viscaria
chelly’s solution
C Chika and Friendly Pairs
solved by chelly
chelly’s solution
莫队+树状数组。
D Chika and Solid Geometry
unsovled
E Hello XTCPC
solved by viscaria&chelly
chelly’s solution
贪心,每次取出字典序最小的序列
F Neko and function
solved by feynman1999
feynman1999’s solution
看到这个范围,第一反应就是EES类似。
考虑fff函数如何计算,发现不是积性函数而且不好计算。
考虑另外一个函数ggg,和fff的区别只是限制条件ai>1a_i>1ai>1变为ai≥1a_i\ge 1ai≥1,这个时候考虑g(n,k)g(n,k)g(n,k)如何求解以及fff和ggg之间的关系。
-
考虑fff和ggg之间的关系,显然ggg的情况是不小于fff的,考虑多的部分,其实就是有ai=1a_i=1ai=1的情况。自然想到枚举哪个位置放1,剩下的用ggg继续表示,即f(n,k)=g(n,k)−Ck1∗g(n,k−1)f(n,k) = g(n,k) - C_k^1*g(n,k-1)f(n,k)=g(n,k)−Ck1∗g(n,k−1)。 但发现其实多减去了,因为后面那个部分统计显然有重复,重复的就是Ck2∗g(n,k−2)−Ck3∗g(n,k−3)+....C_k^2*g(n,k-2) - C_k^3*g(n,k-3)+....Ck2∗g(n,k−2)−Ck3∗g(n,k−3)+....
也就是要容斥一下,即f(n,k)=∑i=0k(−1)i∗Cki∗g(n,k−i)f(n,k) = \sum_{i=0}^k(-1)^i*C_k^i*g(n,k-i)f(n,k)=∑i=0k(−1)i∗Cki∗g(n,k−i)
由于kkk只有30,这个时候祈祷ggg是积性函数,ees就结束了。确实是。
-
考虑函数g(n,k)g(n,k)g(n,k),将nnn质因子分解,可知不同质因子贡献是满足积性的。而对于g(pe,k)g(p^e,k)g(pe,k),对应于eee个球,kkk个盒子,球没有区别,位置(盒子)有区别的放球模型(可以有空盒)。即g(pe,k)=Ce+k−1k−1g(p^e,k) = C_{e+k-1}^{k-1}g(pe,k)=Ce+k−1k−1 (k−1k-1k−1个插板 ,e+k−1e+k-1e+k−1个位置)。最多30次ees即可。
注意ees dfs中,改用Long long 不要用int,二分找错误才发现一个bug,原来爆了int…cao
G Neko and quadrilateral
upsolved by viscaria
viscaria’s solution
H Neko and sequence
upsolved by chelly
chelly’s solution
首先不可以倍增来求解。
考虑到一个重要的性质,从一个位置出发会到达一个长度为222的环,进入环之后,答案就只和ddd的奇偶性有关。
我们可以先预处理出每个位置走多少步进环,以及进环后ddd为奇数/偶数时候分别的答案。
对于每个询问(l,r,d)(l,r,d)(l,r,d),我们分成两个部分进行统计,一部分是未进环的,一部分是进环的,这个可以通过离线来处理。
对于进环的部分,奇数和偶数分别维护一个树状数组即可。
对于不进环的部分,以)为例,考虑一个位置iii,那么最后的答案就是(i+dk%n)%n(i+dk \% n) \% n(i+dk%n)%n,设p=dkp=dkp=dk,容易发现区间[l,r][l,r][l,r]会被分成两部分,一部分答案就是i+pi+pi+p,一部分答案就是i+p−ni+p-ni+p−n,分别利用维护的树状数组进行统计即可。((的处理是类似。)
时间复杂度O(nlogn)O(nlogn)O(nlogn)。
I Neko and tree
solved by chelly
chelly’s solution
dp[u][i]dp[u][i]dp[u][i]表示以uuu为根的子树,选了一些key point,其中最深的key point离uuu的距离是iii情况下的方案数。
直接树上背包转移即可。
J Neko and triangle
unsolved
K SSY and JLBD
solved by viscaria
viscaria’s solution
L Can you raed it croretcly?
solved by viscaria
viscaria’s solution
Dirty Replay
- A题:TLE了4发,主要离散化之后剩下的点多了。事实证明留下点数2e52e52e5的二分图跑费用流还是很慢的。
本文介绍了2019年CCPC湖南全国邀请赛的算法问题,包括A Chessboard、B Build Tree等题目。详细解析了部分题目解法,如A题采用最大费用最大流解决,D题尚未解决,E题采用贪心策略。
718

被折叠的 条评论
为什么被折叠?



