2009-2010 ACM-ICPC, NEERC, Western Subregional Contest
排名 | A | B | C | D | E | F | G | H | I | J | K | L |
---|---|---|---|---|---|---|---|---|---|---|---|---|
X | 1 | 0 | 1 | 1 | 1 | 0 | 1 | X | 0 | X | 1 |
Problem C. Courier's Route
每个城市的度都为偶数,所以满足欧拉回路的条件,因此当n个城市都联通时,肯定有解。所以只需对每个城市进行欧拉,
输出路径的时候,枚举一下城市a和b之间哪个城市是有联系的即可。
Problem D. Dales and Hills
求峰顶:
存一下到从前开始以i为结尾的最长上升子串和从尾开始到i为止的最长上升子串,取i的结尾的最小值的最大值。
同理求峰谷
Problem E. Extremal Permutations
E(n,k) = E(n,k-1) + E(n-1,n-k)
Alternating Permutation 序列
Problem F. Figure ans Spots
要求黑色的部分八联通,白色的部分四联通.
########
#*#*#*##
##*#*#*#
#*#*#*##
##*#*#*#
########
*
和#
交替出现,周围围上一圈#即可,算一下最大的*
的个数就可以了
Problem G. Game for Little Johnny
求 AX + BY = N ,其中A
预处理出1~N的中每个数可以分成两个乘积的因数,从小到大排序;
枚举A和X,可以得到BY = N - AX;
二分查找,存下所有BY的因数中比A大的。
去重。
输出即可。
Problem H. Hotel in Ves Lagos
二分+数位DP
Problem K. Kids and Prizes
N为人数,M为箱子数
求出每个箱子不被使用的概率 ((M-1)/M)^N;
从而求得概率: N - N*((M-1)/M)^N
;
Problem K. Kids and Prizes
枚举任意两个点,看是否有一个点相同
再用向量(x1,y1)*(x2,y2) = x1*x2 + y1*y2
判断是否为垂直