2016 年青岛online题解(来自icpc-camp)
1001
题意:给出一个整数
n
, 找出一个大于等于n 的最小整数
m
, 使得m 可以表示为
2a3b5c7d
.
题解:快速幂预处理出所有形为 2a3b5c7d 即可, 大概只有几k个.
1002
题意:给
n
,求 ∑nk=11k2 。
题解:
n
很大的时候(大概大于1000000)答案趋近于π26 ,
n
小的时候预处理即可。
1003
题意:敏感词屏蔽,给一堆敏感词,给一段文本,要求把文本中所有的敏感词用*代替。
题解:对敏感词建出AC自动机,在AC自动机上跑文本,就可以得到文本的每个前缀的最长匹配后缀,扫一遍即可得到结果。
1004
题意:有一壶水, 体积在 L 和
R
之间, 有两个杯子, 你要把水倒到两个杯子里面, 使得杯子水体积几乎相同(体积的差值小于等于1), 并且使得壶里剩下水体积不大于1. 你无法测量壶里剩下水的体积, 问最小需要倒水的次数。
题解:考虑倒水的大致过程,L=0 和
L=1
的情况应该是等价的,所以不妨设
L>0
。首先向一个杯子倒
L2
升水,再往另一个杯子倒
L2+1
升水。接下来就来回往两个杯子里倒 2 升,直到倒空为止。这样就很容易分析出需要倒水的次数。唯一注意的是最后壶里面可以剩下 1 升水,可以省一次倒水的操作。
1005
题意:问
n
个手势的石头剪刀布游戏是否能保证出每种手势胜率都一样。
题解:当每种手势的攻防个数完全相等才能保证平衡,所以容易得出 n 是奇数时游戏平衡,否则不平衡。
1006
题意:
n
个点m 条无向边的图,找一个欧拉通路/回路
P0,P1,..Pm
(
Pi
是节点标号),使得
aP0⊕aP1⊕..⊕aPm
最大。输出这个值。
题解:由欧拉路性质,奇度点数量为0或2。一个节点被进一次出一次,度减2,产生一次贡献,因此节点
u
的贡献为(⌊degreeu2⌋ mod 2)∗au 。欧拉回路的起点贡献多一次,欧拉通路的起点和终点贡献也多一次。因此如果是欧拉回路的话枚举一下起点就好了。
1007
题意:
n
个有序序列的归并排序.每次可以选择不超过k 个序列进行合并,合并代价为这些序列的长度和.总的合并代价不能超过
T
, 问k 最小是多少。
.