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小值即可。(构造题是真的恶心)

 

posted @ 2019-10-09 12:08  ATHOSD  阅读(116)  评论(0编辑  收藏  举报