10.8_

 

 改了一上午的我改不动了就来颓博客了。

                                                    

 

你挥剑的理由由我来继承。你,只要成为我挥剑的理由就好。
——剑鬼《re:从零开始的异世界生活》

 

 

 

A. Simple


60分算法:exgcd。枚举gcd的倍数c再判断能否使a和b都大于等于0。

100分算法:考虑正难则反,既然找不好的数不好找,不妨找好数。

那么范围缩小到了能被gcd整除的数里,把x,y,q同除gcd

大佬们说在n*m内没有组合会重复。所以就可以枚举m的系数从0到n,然后将n的范围求出来。

但是还有没有n的情况,所以还要加上q/m,或者直接在每次求m的范围时加个一最后减掉一是因为有种n,m同为0 的情况。

 

B. Walk


%%%remarkable并茶几ac

30分暴力dfs

60分枚举最大公约数,把权值为这个数的倍数的边加入,问题转化为求直径。

考场打了并茶几维护,本以为很快但是还是T60了。

实际上直径有两种方法,还有一种是dfs/树形dp解决。

复杂度???

 

C. Travel


考场上有点措施,但没来得及实现。

我想的是对于一个位置而言,如果它必定要被经过两次以上,那么就让它充当"L"的贡献。

这样的话似乎可以搞掉10pts?

你可能感兴趣的:(10.8_)