轻舟过
昨晚做的CF118 (div2)的题目(我会说其实不怎么涉及算法吗)

本帖最后由 轻舟过 于 2012-5-6 14:49 编辑

大家可以做做啦,前面几题其实不难的。链接在这里http://codeforces.com/contest/186

各种语言都支持的,做完可以去交一下。我会用中文大概描述下题意,如果大家看英文不太吃力的话建议还是看原来的题目。当然输入输出还是要参考下题目的。

A. 给定两个基因S、T,如果交换S中的两个字符可以得到T,则判定他们属于同一物种,输出YES、否则输出NO。S、T为长度小于10^5的字符串,且只包含小写字母。另外如果长度不相等,则S、T是不属于同一物种的。

B. 有一个使蘑菇生长的比赛,每个人从高度0开始使蘑菇以速度v1厘米每秒生长t1秒,然后中场休息,中场休息时蘑菇高度会下降K%,之后每个人以v2厘米每秒的速度生长t2秒,现在知道第i个人所使用的速度是ai, bi,但是不知道先用ai还是bi。现在假设每个人采用最佳的策略,问最后的排名是怎么样。从最高的高度以降序输出排名,每行输出选手编号和蘑菇高度。

C. 有一种植物按如下方式生长,初始为形如最左的性状,每经过一个单位时间,每个三角形分裂成4个小三角形。问经过n个单位的时间(0<=n<=10^18),会产生多少个尖角向上的小三角形。输出答案对 1e9+7求余的结果。

D. 背景什么的略去了。给定整数S(1<=S<=1000)和整数a、b、c(0<=a, b,c<=1000),求在约束x+y+z<=S, x>=0, y >=0, z >= 0下,求x^a*y^b*z^c的最大值在x,y,z分别等于什么时取到。在这个问题中认为0^0=1。

E. 如图第1层有n(n<=50)个托盘、第二层有n-1个托盘,依次类推到第n层有1个托盘,第i层左数第j个托盘限重wij,一旦超过限重,托盘可能会向左或者向右翻(当然边界的只有一种可能性),倒入下一层左边或右边的托盘。现在在第一层的托盘上放上a1~an的重量(同时放),假设同一层的托盘是同时打翻的,问最底层的托盘有没有打翻的可能。