1001 Rikka with Quicksort
先化式子先得到
g
m
(
n
)
=
n
−
1
+
2
n
∑
i
=
0
n
−
1
g
m
(
i
)
=
n
−
1
+
2
n
∑
i
=
m
+
1
n
−
1
(
i
−
1
)
∏
k
=
i
+
1
n
−
1
(
1
+
2
k
)
g_m(n)=n-1+\frac{2}{n}\sum_{i=0}^{n-1}g_m(i)=n-1+\frac{2}{n}\sum_{i=m+1}^{n-1}(i-1)\prod_{k=i+1}^{n-1}(1+\frac{2}{k})
gm(n)=n−1+n2∑i=0n−1gm(i)=n−1+n2∑i=m+1n−1(i−1)∏k=i+1n−1(1+k2)
然后后面乘积的一项如果忽略
k
=
i
−
1
和
i
−
2
k=i-1和i-2
k=i−1和i−2的时候就为
(
i
−
1
)
n
(
n
+
1
)
(
i
+
1
)
(
i
+
2
)
\frac{(i-1)n(n+1)}{(i+1)(i+2)}
(i+1)(i+2)(i−1)n(n+1)
然后问题就变成求一个
∑
i
=
1
n
i
−
1
(
i
+
1
)
(
i
+
2
)
\sum_{i=1}^{n}\frac{i-1}{(i+1)(i+2)}
∑i=1n(i+1)(i+2)i−1
直接分段打表,每隔
1
0
6
10^6
106个数算出一个
1002 Rikka with Cake
由于没有一条切线的 x , y x,y x,y坐标相同,所以容易得到块数等于交点数加一
1003 Rikka with Mista
先折半,然后枚举每一位,算这一位是
4
4
4的个数。
对于第
i
i
i位,用桶排排出只有后
i
i
i位的顺序,然后用双指针计算出这一位和为
4
4
4,注意可能为
14.....
14.....
14.....或者
4.....
4.....
4.....
1004 Rikka with Geometric Sequence
容易得到
∑
p
=
1
n
∑
q
=
p
+
1
n
[
g
c
d
(
p
,
q
)
=
1
]
∑
a
=
2
⌊
n
p
a
⌋
\sum_{p=1}^{n}\sum_{q=p+1}^{n}[gcd(p,q)=1]\sum_{a=2}\lfloor\frac{n}{p^a}\rfloor
∑p=1n∑q=p+1n[gcd(p,q)=1]∑a=2⌊pan⌋
然后化一下得
∑
a
=
2
∑
q
=
2
a
n
φ
(
q
)
⌊
n
p
a
⌋
\sum_{a=2}\sum_{q=2}^{{}^a\!\sqrt{n}}\varphi(q)\lfloor\frac{n}{p^a}\rfloor
∑a=2∑q=2anφ(q)⌊pan⌋
对于等比序列长度为一或二的情况特殊处理,对于
a
>
=
3
a>=3
a>=3直接暴力
对于
a
=
2
a=2
a=2,先预处理出
1
0
7
10^7
107的
φ
\varphi
φ的值,然后就是类似莫比乌斯反演根号跳的三次方跳,对于
>
1
0
7
>10^7
>107的值就直接杜教筛筛。
1005 Rikka with Game
简单博弈。
对于前缀一段
y
y
y,双方肯定都不会动。
如果剩下的是
z
z
z,那么这个
z
z
z就会变为
b
b
b,也就是先手把
z
z
z变
a
a
a,后手
a
a
a变
b
b
b,先手结束
否则先手直接结束。
1006 Rikka with Coin
容易发现
10
10
10元不会超过一张,
20
20
20不会超过
4
4
4张,
50
50
50不会超过
1
1
1张,剩下就是
100
100
100元。
暴力枚举每种的张数,然后就能判断是否能构完以及要多少张
100
100
100
1007 Rikka with Travels
枚举每条边,计算出这条边两边的子树的直径,换根 d p dp dp即可。
1008 Rikka with Stable Marriage
根据限制就可以得到答案一定是每次选一对异或和最大的。
对于
a
a
a和
b
b
b都建出对应的
t
r
i
e
trie
trie。
每次询问就暴力
d
f
s
dfs
dfs,哪里大就走哪边,对于
a
a
a的
t
r
i
e
trie
trie走完记录下这个走点的最大值和走到最大值要走哪个儿子。
已经走过的就用返回记录的答案。
去掉一对
a
a
a和
b
b
b之后,就将那个
a
a
a对应
t
r
i
e
trie
trie上点的答案设为未走过。
1011 Rikka with Segment Tree
设
F
(
n
)
=
∑
i
=
1
n
f
(
n
,
i
)
∗
i
F(n)=\sum_{i=1}^{n}f(n,i)*i
F(n)=∑i=1nf(n,i)∗i
b
=
l
o
g
2
(
n
)
b=log_2(n)
b=log2(n)
F
(
n
)
=
F
(
⌊
n
2
⌋
)
+
F
(
⌈
n
2
⌉
)
+
n
(
n
+
1
)
2
+
⌈
n
2
⌉
∗
(
n
b
+
2
(
n
−
2
b
)
)
F(n)=F(\lfloor\frac{n}{2}\rfloor)+F(\lceil\frac{n}{2}\rceil)+\frac{n(n+1)}{2}+\lceil\frac{n}{2}\rceil* (nb+2(n-2^b))
F(n)=F(⌊2n⌋)+F(⌈2n⌉)+2n(n+1)+⌈2n⌉∗(nb+2(n−2b))
然后就是可以
∑
i
=
1
n
/
2
F
(
i
)
\sum_{i=1}^{n/2}F(i)
∑i=1n/2F(i)推到
∑
i
=
1
n
F
(
i
)
\sum_{i=1}^{n}F(i)
∑i=1nF(i)
然后就是很麻烦的式子了。