\(A.\)来回翻\(5\),\(6\)是最优的
\(B.\)设\(a_x\)为\(x\)值出现的次数,那么\(ans=\sum[a_x>0]-[\sum (a_x-1) = 1~(mod~2)]\)
\(C.\)
\(法1\).对于一个数\(d\),区间长度\(\ge d\)都包含\(d\)的倍数,
\(<d\)的最多包含一个。我们按区间长度排序。
枚举\(d\),然后用个指针向右走指向\(<d\)的最大的区间。
然后对扫过的所有区间实行一个区间加,然后枚举\(d\)的倍数单点查即可。
这个可以差分后用树状树组。
\(法2.\)设对于每个\(d\)的所有倍数从小到大形成的序列为\(a_1,a_2...a_k\),特别的,\(a_{k+1}\)为\(n\)
设\(f_i\)为只包含\(a_i\)而不包含\(a_1,a_2...a_{i-1}\)的区间个数。
那么\(ans=\sum_{i=1}^{k}f_i\)那么其实\(f_i=\sum[l_k \in [a_{i-1}+1,a_i],r_k \in [a_i,m] ]\)
主席树一发即可。
\(法3.\)整除分块,欸嘿我菜我不会。
\(D.\)
毒瘤计数结论题。
窝根本不会数数,贴个luogu的题解链接跑路了。。
https://www.luogu.com.cn/problem/solution/AT2301