[TJOI2017]可乐
如果没有自爆或不动的话,一个矩阵乘就可以了
发现自爆相当与连一条到 0 的边,不动相当于自己向自己连边
然后矩阵乘就可以了
这个乘法的意义在于,i – j 的方案数 * j – k 的方案数即为当前 i – k 的方案数
于是
a
n
s
=
∑
i
=
0
n
a
[
1
]
[
i
]
ans=\sum_{i=0}^n a[1][i]
ans=∑i=0na[1][i],即1到所有点的方案数
[TJOI2017]不勤劳的图书管理员
动态维护一下逆序对,树状数组套权值线段树就可以了
[TJOI2017]异或和
先前缀和一波,然后按位考虑,即考虑使当前位为1的个数
对于一个
s
u
m
[
i
]
sum[i]
sum[i], 若它的当前位为1,使当前位为1的
s
u
m
[
j
]
sum[j]
sum[j]需满足
1.要么当前位为1且当前位之前比
s
u
m
[
i
]
sum[i]
sum[i] 小
2.要么当前位为0且当前位之前比
s
u
m
[
i
]
sum[i]
sum[i] 大
于是用树状数组维护一下即可
[TJOI2017]城市
考虑枚举断边,
a
n
s
=
m
a
x
(
d
1
,
d
2
,
r
1
+
r
2
+
x
)
ans=max(d1, d2, r1+r2+x)
ans=max(d1,d2,r1+r2+x),d1, d2, r1, r2 表示直径与半径
[TJOI2017]龙舟
一个数对于 p 有逆元,当且仅当它们互质
于是我们可以把 p 分解,然后将 a,b 中含有 p 的约数的约分掉单独考虑
如果约不完显然就无解了,分解 p 用 pollard-rho
然后剩下部分求逆元就可以了----
a
φ
(
p
)
≡
1
(
m
o
d
p
)
a^{\varphi(p)}\equiv 1(mod p)
aφ(p)≡1(modp)
[TJOI2017]DNA
每个位置匹配一次,如果中途失配就重新匹配,Hash就可以了
TJOI2017 题解
最新推荐文章于 2021-09-01 14:41:21 发布