Similar Dishes
题意简述
给你两个大小为 4 的字符串集合,问你并集是不是空集。
数据范围
2≤len≤10
思路
丝薄模拟。
Dish Of Life
题意简述
n
个岛,每个岛
食材编号为
1
~
问能否收集到全部食材,如果能,是否必须经过所有岛。
数据范围
1≤T≤10
1≤n,k≤105
1≤∑p≤106
思路
随便那个bool数组搞一搞就行了,丝薄题。
Bear and Row 01
题意简述
给出一个01
序列,每次可以选择一个1
,如果它右边为0
,便可以向右移动一格。
选择和移动都要花费1s。
求最长时间。
数据范围
1≤T≤5
1≤len≤105
思路
移动完成之后相对位置不变,每个1
最后到的位置是确定的。
移动的代价就确定了。
最大化选择的代价。
每个1
被选择的次数与它右边的1
需要移动长度的种类数有关。
随便搞搞就A了。
Bear and Clique Distances
题意简述
n
个城市。
前
此外还有
求从
S
出发到每个城市的最短路。
数据范围
2≤n≤105
1≤m≤105
1≤len≤109
思路
对前
k
个城市建一个附加点
连
ai→p(x)
,
p→ai(0)
然后就是个裸的最短路了。
Chef and Divisor Tree
题意简述
定义
x
的因子树:
对每个儿子重复这个步骤。
(一个数可能被写多次)
一条路径的得分定义为路径上所有点的度数之和。
一棵树的得分
计算
∑Ri+Lf(i)
数据范围
1≤L≤R≤1012
R−L≤105
思路
x
的因子树的得分最高的路径:
得出结论:
爆搜出所有的集合,状态只有不到5000种。
一个数
>n√
的质因数最多只有一个。
用
1012−−−−√
的质数筛这个区间,就可以求出这个区间所有数的质因子次数集合。
然后就可以直接做了。
UPD:后来发现直接暴力减就可以了???
Stable market
题意简述
给出长度为
n
的数列。
定义稳定块为权值相同的日子的极大连续段。
定义
回答
数据范围
1≤n,q≤105
1≤ai≤106
思路
直接上莫队就好了嘛…
Bear and Random Grid
题意简述
n×n
的网格。
每个格子里是.
或#
。.
表示有一个棋子,#
表示障碍。
给出
L
个操作,形如RLUD
表示向左右上下移动。
每次操作所有棋子一同移动,如果碰到障碍或者超出边界便移除。
问每个棋子能走多少步,输出它们的异或和。
数据安装一定方法生成:定义一个概率
数据范围
1≤n≤1000
1≤L≤5000
0≤p<1
思路
bitset强行搞。
行列都搞一个bitset。每次操作完统计一下棋子个数。
复杂度
O(Tn2L64)
。
可以通过本题。
好像另有高论啊……
按照
p
分类。
如果
如果
p
比较小,障碍较小,从障碍反着走。复杂度
Chef and Digits
题意简述
问
[L,R]
区间内有多少数,数字
i
的个数
数据范围
1≤T≤20
1≤L≤R≤1018
0≤ai≤18
思路
数位DP。
统计答案再套一个DP。
f(i,j)
表示放到
i
个数,一共放了
转移
f(i,j)=f(i−1,j−k)×C(j,k)
复杂度
O(Tlog5R)
(CH) Serejs and Billiards
题意简述
一道challenge题目。
给出一张
n×n
的球桌,上面有
m
个球,每个球有一个分数。
每次击球可以选择八个方向,上下左右和它们的角平分线方向。
如果碰到桌壁,球会镜面反弹。
如果碰到另一个球,会将这两个球合并,继续走。
如果到了桌角斜后方的点(假设
每次击球会花费1分的代价。
最大化得分。
数据范围
1≤T≤10
1≤n≤100
1≤m≤1000
思路
1.将所有正得分的球移动到上沿,负得分球移动到左沿。
2.最左列如果有正,就向右/右上/右下移动一下。
3.最上行如果有负,就向下/左下/右下移动一下。
4.整行/列的移动可以通过一次击球得到。
5.xjb优化
Heavy-Light Decomposition
题意简述
对一棵
n
个节点的树进行轻重链剖分。
一条轻链的代价为
一条重链的代价为
⌈log2L⌉+1
使得从根到叶,代价最大的路径的代价最小。
求这个最小值。
数据范围
1≤T≤10
1≤n≤105
思路
朴素DP。
f(i,j)
表示
i
节点向上重链长度为
转移显然,枚举每一个儿子当做重儿子,取
min
。
这样复杂度
O(n2)
需要优化。
联想树链剖分,不超过
logn
条重链,每条重链代价为
log
,答案在
log2
级别,实测120+。
其实题目描述就是树链剖分线段树的复杂度?
考虑转换状态。
f(i,j)
表示
i
节点,答案为
由于单调性,我们只需要保存一个端点即可。
转移显然。
复杂度
O(Tnlog2n)