COCI 2012/2013 Round #1

Brief description:

Problem A. Dom

… 删除一个字符串中的所有的 “CAMBRIDGE” 中的字符。。

import re
print re.sub("[CAMBRIDGE]","",raw_input())
Problem B. F7

。。n 个人参加一个比赛,(没有并列。。
。。其中第 i 名 获得 n-i+1 分。。
现在给定 n 个人一个初始分数,问最后有多少人可能获得总分第一?(并列第一也可以。。

I = lambda: map(int, raw_input().split())

n = input() 
a = [0] * n
for i in range(0, n):
	a[i] = input()

a.sort()

i = n		
best = 0

while i>=0:	
	i -= 1
	if (a[i]+n < best): break	
	if (a[i]+n-i > best): best = a[i]+n-i
print n-i-1	

(贪心。。Python 后三个点超时。。

。。。

Problem C. Koncert

。。。我这个蠢飞了啊。这个简直就是 bug 啊。
。。。进去会场里面还能带票出来给别人。跪跪跪。。。
。模拟。。

Problem D. Ljubomora

。。n 个人 m 堆石子,第 i 堆石子有 ai 个。。现在要把这 m 堆石子分给这 n
个人,要求每个人拿到的石子必须来自同一堆。。。求方案使得拿到石子最多的人拿到的最少。。
二分答案判定。。(假设答案为 x,若满足  \sum_{i=1}^n \lceil \frac{a_i}{x} \rceil \leq n 则合法。。

Problem E. Snaga

定义 K(x) 为最小的不能整除 x 的数,定义 strength(x) = strength(K(x)) + 1 (  strength(2) = 0  。。
 \sum_{i=A}^B strength(i)

Problem F. Mars

要求构造一个 2^k 阶的排列。。
满足以此排列构造的满二叉树的每个结点,(每个结点是一个集合,以 ai 位置的数为叶子,然后每个结点由其左右子树合并而成。。
。都是一段连续的数字。。已知每对数字之间存在一个斥力。。
最小化排列相邻数字之间的斥力和。。。

ゆっくり読んでください …

Codeforces Round #125

Brief description:

Problem A. About Bacteria
… 培养皿中的 x 只细菌下一秒会繁衍出 kx+b 只细菌。。(。。。
问如果初始培养皿中有 t 只细菌,至少多少秒才可以繁衍出不少于 z 只细菌。
。。。z 为初始为一只细菌时,繁衍 n 秒的细菌总数。。。(。。。
(略,算术题。。不要把 z 真给算出来即可。。

Problem B. Jumping on Walls
一个忍者在一个坑里, 左右各有一面墙,墙上有一些障碍,初始在最下角。
每秒钟可以上下移动一格,或者跳到对面墙的恰好 +k 位置。。
。。问最终能出跳出这个坑。。
(略, Hash Dp 或者 BFS() 都行。。。。

Problem C. Delivering Carcinogen
给定一颗行星坐标 (xp, yp),轨道半径 R,围绕恒心运转的线速度 vp,
以及一个飞船坐标 (x, y),飞船速度 v。。问到达 p 星球的最少时间。。
。。飞船运行过程中距恒星的距离不得低于 r。。(r ≤ R) …

Problem D. Cube Snake
给定一个 n 阶立方体,要求构造满足下列性质的路径:
对任意的 k < n, 存在至少 2 个 k 阶子立方体, 满足其中的数字取自一段连续区间。 Problem E. Gripping Story 空间中有一堆吸盘。 。。每个吸盘用 (xi, yi, mi, pi, ri) 表示。。。 。。自身坐标,重量。。。能抓起来的最大物品的重量,以及作用范围。。。。 。。现给定飞船初始坐标。。(x0, y0)。。初始吸盘(p0, r0)... 问最多可以收集多少个吸盘。。。 (。。一旦得到一个吸盘以后以后就可以无限更换使用。。 (。。。注意注意飞船本身不动不动不动!。。并且吸盘吸到飞船里才能使用。。。OOrz。。 ゆっくり読んでください …