2019.10.08'题解
A. Simple
考虑统计能构成的,q-ans便是答案
有些像小凯的疑惑.
n,m两个数最大的不能组成的数是LCM(n,m)-n-m;
设lim=min(LCM,q),问题转化为求[1,lim]里有多少个可以被构成。
要先把n,m同时除以(n,m),保证[1,lim]里的数能被唯一表示。
之后我们发现n很小,可以直接枚举i*m,O(1)求出有多少可以被表示。
B. Walk
又一道卡常题
思路还是挺简单,但是考场上感觉这复杂度应该过不了就没打
首先把每条边存到其val的约数的vector,之后枚举1-1e6建边dfs找最长链即可。
复杂度$ O(n*(sqrt(max{w})+sqrt(n)) $
C. Travel
贪心神题,但是咕了
大概思路就是枚举T,S和T两侧的线段一定至少经过两次,而且在这里向左不会使得步数变多,所以就让向左的次数在这里尽量多,对于[S,T],假设还有x次数没用,那么一定有x条线段被经过3次,其他的1次,找前x小值即可。(构造题是真的恶心)