A. Nastya and an Array
水题,暴力
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
B. Nastya Studies Informatics
数论、思维枚举
a*b=x*y,a=n*m,b=m*z.则x=m,y=n*m*z。考虑枚举n的所有可能,复杂度为O(sqrt(n))。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
C. Nastya and a Wardrobe
数学
S1=2*x,S2=2*S1-1,可以用矩阵递推或者直接用公式,Sk=(2*x*2^k-(2^k-1))%p,注意特判x,k为0的情况。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
D. Nastya and a Game
数学(给一个数列,求出子区间个数,要求满足∏rlai=K∗∑rlai )
观察等式右边最大值为为2e18不超过long long ,如果等式左边溢出long long 则以此数开头的序列不可能再满足等式,
如果ai>=2,那么不超过64次就会结束,如果出现多个1的情况,此时等式左边不会改变,记录下每个1可连续延伸的最
大下标,直接跳过这一段并直接判断是否有满足条件的情况,最多不跳过64次,所以复杂度为O(n*log2e18)(O(64*n))左右。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
E. Nastya and King-Shamans
数据结构、二分查找
未做,日后补上。
∏rlai=K∗∑rlai∏lrai=K∗∑lrai