保证军队不会驻扎在首都。对于20%的数据,荃10;
对于40%的数据,2囟50,()w < 105;对于60%的数据,2 n 1000,0 对于100%的数据,2 n n 50,000,()w < 109 全国信息学奥林匹克联赛(2012)复赛 提高组 1 1.è 密码 () 【问题描述】 16 世纪法国外交家 è 设计了一种多表密码加密算法——è 密码。è 密码的加密解密算法简单易用,且破译难度比较高,曾在美国南北战争中为南军所广泛使用。 C 表示;而密钥是一种参数,是将明文转换为密文或将密文转换为明文的算法中输入的数据,记为 k。 在 è 密码中,密钥 k 是一个字母串,1k2…。当明文 1m2… 时,得到的密文 1c2…,其中 ?,运算?的规则如下表所示: 在密码学中,我们称需要加密的信息为明文,用 M 表示;称加密后的信息为 ? è 加密在操作时需要注意: 1. ?运算忽略参与运算的字母的大小写,并保持字母在明文 M 中的大小写形式; 当明文 M 的长度大于密钥 k 的长度时,将密钥 k 重复使用。 e b f l c n l a l o b p w c y o a o r b s l c n d a d 2. 例如,明文 ,密钥 时,密文 。 明文 密钥 密文 H a H 【输入】 输入文件名为 。 输入共 2 行。 第一行为一个字符串,表示密钥 k,长度不超过 100,其中 仅包含大小写字母。第二行为一个字符串,表示经加密后的密文,长度不超过 1000,其中仅包含大小写字母。【输出】 输出文件名为 。 输出共 1 行,一个字符串,表示输入密钥和密文所对应的明文。 【输入输出样例】 【数据说明】 对于 100%的数据,输入的密钥的长度不超过 100,输入的密文的长度不超过 1000,且都仅包含英文字母。 3. 国王游戏 () 【问题描述】 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏。首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。然后,让这 n 位大臣排成一排,国王站在队伍的最前面。排好队后,所有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是:排在该大臣前面的所有人的左手上的数的乘积除以他自己右手上的数,然后向下取整得到的结果。 国王不希望某一个大臣获得特别多的奖赏,所以他想请你帮他重新安排一下队伍的顺序,使得获得奖赏最多的大臣,所获奖赏尽可能的少。注意,国王的位置始终在队伍的最前面。 【输入】 输入文件为 。 第一行包含一个整数 n,表示大臣的人数。 第二行包含两个整数 a 和 b,之间用一个空格隔开,分别表示国王左手和右手上的整数。 接下来 n 行,每行包含两个整数 a 和 b,之间用一个空格隔开,分别表示每个大臣左手和右手上的整数。 【输出】 输出文件名为 。 输出只有一行,包含一个整数,表示重新排列后的队伍中获奖赏最多的大臣所获得的金币数。 【输入输出样例】 3 2 1 1 2 3 7 4 4 6 【输入输出样例说明】按1、2、3号大臣这样排列队伍,获得奖赏最多的大臣所获得金币数为2;按1、3、2这样排列队伍,获得奖赏最多的大臣所获得金币数为2;按2、1、3这样排列队伍,获得奖赏最多的大臣所获得金币数为2;按2、3、1这样排列队伍,获得奖赏最多的大臣所获得金币数为9;按3、1、2这样排列队伍,获得奖赏最多的大臣所获得金币数为2;按3、2、1这样排列队伍,获得奖赏最多的大臣所获得金币数为9。 因此,奖赏最多的大臣最少获得 2 个金币,答案输出 2。 【数据范围】 对于 20%的数据,有 1≤ n≤ 10,0 < a、b < 8;对于 40%的数据,有 1≤ n≤20,0 < a、b < 8; 对于 60%的数据,有 1≤ n≤100;
相关推荐: