http://codeforces.com/submissions/hanfei19910908
C題: A題 略
B題
構(gòu)造一個(gè)長度為n的數(shù)列,使每個(gè)數(shù)在1到l之間,并滿足a0-a1+a2-a3+...+ai * (-1)^(i%2) + ... = d
算法分析:
將所有項(xiàng)設(shè)成1,然后再分配。
C題
給一個(gè)長度為n(n<100,000)的數(shù)列,給一個(gè)數(shù)k(k<1,000,000,000),你可以讓數(shù)列中的一些數(shù)加1,最多可以使用k次。
現(xiàn)在給你隨意分配的權(quán)力,問相同的數(shù)最多的數(shù)是多少?
算法分析:
排序之后,枚舉答案。 判定的時(shí)候如果暴力往前是n*sqrt(k),可以二分到達(dá)n*logn。
D題
給一個(gè)與坐標(biāo)軸平行的立方體。每個(gè)面上有標(biāo)號。問你在k點(diǎn)可以看見的標(biāo)號和。
算法分析:
因?yàn)槭橇⒎襟w,判斷一下坐標(biāo)范圍就可以了。
E題
給一個(gè)“點(diǎn)仙人掌”,即強(qiáng)聯(lián)通分量都是簡單環(huán)的圖。給k此詢問,問u和v之間存在幾條簡單路。
算法分析:
tarjan強(qiáng)聯(lián)通縮點(diǎn)
倍增法求LCA


