试题 算法提高 字符串压缩 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 编写一个程序,输入一个字符串,然后采用如下的规则对该字符串当中的每一个字符进行压缩: (1) 如果该字符是空格,则保留该字符: (2) 如果该字符是第一次出现或第三次出现或第六次出现,则保留该字符: (3) 否则,删除该字符. 例如,若用户输入"occurrence",经过压缩后,字符c的第二次出现被删除,第一和第三次出现仍保留:字符r和e的第二次出现均被删除,因此最后的结果为:"o…
试题 算法提高 进攻策略加强 问题描述 植物大战僵尸这款游戏中,还有一个特别的玩儿法:玩家操纵僵尸进攻植物. 首先,僵尸有m种(每种僵尸都是无限多的),玩家可以选择合适的僵尸来进攻.使用第i种僵尸需要花费Wi资源,可以得到Pi的攻击效果.在这里,我们认为多个僵尸总的攻击效果就是他们每个攻击效果的代数和. 地图共有n行,对于第i行,最左端有若干植物,这些植物需要至少Qi的攻击才能被全部消灭.若一行上的植物全部被消灭,我们称这一行被攻破. 由于资源紧张,你只有总量为K的资源,不一定能够攻破所有行.但…
试题 算法提高 小X的购物计划 问题描述 小X打算去超市shopping.小X没什么钱,只有N元.超市里有M种物品,每种物品都需要money,在小X心中有一个重要度.有的物品有无限件,有的物品只有几件.小X想让他买的物品重要度之和最大,请问这个和最大是多少? 输入格式 第一行为两个整数N,M. 以下M行,每行包含三个整数P,R,C,分别表示价格.重要度和个数.若C为-1则表示无限件. 输出格式 输出只有一行,即题目中要求的最大和. 样例输入 2 10 3 7 2 2 4 -1 样例输出 22 数…
试题 算法提高 Substrings 问题描述 You are given a number of case-sensitive strings of alphabetic characters, find the largest string X, such that either X, or its inverse can be found as a substring of any of the given strings. 输入格式 The first line of the input…
试题 算法提高 字符串匹配 问题描述 给出一个字符串和多行文字,在这些文字中找到字符串出现的那些行.你的程序还需支持大小写敏感选项:当选项打开时,表示同一个字母的大写和小写看作不同的字符:当选项关闭时,表示同一个字母的大写和小写看作相同的字符. 输入格式 输入的第一行包含一个字符串S,由大小写英文字母组成. 第二行包含一个数字,表示大小写敏感的选项,当数字为0时表示大小写不敏感,当数字为1时表示大小写敏感. 第三行包含一个整数n,表示给出的文字的行数. 接下来n行,每行包含一个字符串,字符串由大…
算法提高 P0102 时间限制:1.0s 内存限制:256.0MB 提交此题 用户输入三个字符,每个字符取值范围是0-9,A-F.然后程序会把这三个字符转化为相应的十六进制整数,并分别以十六进制,十进制,八进制输出,十六进制表示成3位,八进制表示成4位,若不够前面补0.(不考虑输入不合法的情况) 输入 1D5 输出 (注意冒号后面有一个空格) Hex: 0x1D5 Decimal: 469 Octal: 0725 import java.util.Scanner; public class P0…
算法提高 学霸的迷宫 时间限制:1.0s 内存限制:256.0MB 问题描述 学霸抢走了大家的作业,班长为了帮同学们找回作业,决定去找学霸决斗.但学霸为了不要别人打扰,住在一个城堡里,城堡外面是一个二维的格子迷宫,要进城堡必须得先通过迷宫.因为班长还有妹子要陪,磨刀不误砍柴功,他为了节约时间,从线人那里搞到了迷宫的地图,准备提前计算最短的路线.可是他现在正向妹子解释这件事情,于是就委托你帮他找一条最短的路线. 输入格式 第一行两个整数n, m,为迷宫的长宽. 接下来n行,每行m个数,数之间没有间…
算法提高 周期字串 时间限制:1.0s 内存限制:256.0MB 问题描述 右右喜欢听故事,但是右右的妈妈总是讲一些"从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事,讲的什么呢?从前有座山--"这样循环的故事来搪塞右右. 我们定义,如果一个字符串是以一个或者一个以上的长度为k的重复字符串所连接成的,那么这个字符串就叫做周期为k的串. 例如: 字符串'abcabcabcabc'周期为3,因为它是由4个循环'abc'组成的.它同样是以6为周期(两个重复的'abcabc')和以12为周…
算法提高 6-17复数四则运算 时间限制:1.0s 内存限制:512.0MB 提交此题 设计复数库,实现基本的复数加减乘除运算. 输入时只需分别键入实部和虚部,以空格分割,两个复数之间用运算符分隔:输出时按a+bi的格式在屏幕上打印结果.参加样例输入和样例输出. 注意考虑特殊情况,无法计算时输出字符串"error". 样例输入 2 4 * -3 2 样例输出 -14-8i 样例输入 3 -2 + -1 3 样例输出 2+1i import java.util.Scanner; publ…
算法提高 P1001 时间限制:1.0s 内存限制:256.0MB 提交此题  当两个比较大的整数相乘时,可能会出现数据溢出的情形.为避免溢出,可以采用字符串的方法来实现两个大数之间的乘法.具体来说,首先以字符串的形式输入两个整数,每个整数的长度不会超过8位,然后把它们相乘的结果存储在另一个字符串当中(长度不会超过16位),最后把这个字符串打印出来.例如,假设用户输入为:62773417和12345678,则输出结果为:774980393241726. 输入: 62773417 1234567…
算法提高 9-2 文本加密 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述 先编写函数EncryptChar,按照下述规则将给定的字符c转化(加密)为新的字符:"A"转化"B","B"转化为"C",- -"Z"转化为"a","a"转化为"b",- -, "z"转化为"A",其它字符不加密.编…
算法提高 9-3摩尔斯电码 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述 摩尔斯电码破译.类似于乔林教材第213页的例6.5,要求输入摩尔斯码,返回英文.请不要使用"zylib.h",只能使用标准库函数.用' * '表示' . ',中间空格用' | '表示,只转化字符表. 摩尔斯码定义见:http://baike.baidu.com/view/84585.htm?fromId=253988. 提示 清橙进行评测时,输入是以EOF结尾的,而不是换行符.(EOF不是一个…
算法提高 身份证号码升级 时间限制:1.0s 内存限制:256.0MB 问题描述 从1999年10月1日开始,公民身份证号码由15位数字增至18位.(18位身份证号码简介).升级方法为: 1.把15位身份证号码中的年份由2位(7,8位)改为四位. 2.最后添加一位验证码.验证码的计算方案: 将前 17 位分别乘以对应系数 (7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2) 并相加,然后除以 11 取余数,0-10 分别对应 1 0 x 9 8 7 6 5 4 3 2. 请…
试题 算法提高 成绩排名 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 小明刚经过了一次数学考试,老师由于忙碌忘记排名了,于是老师把这个光荣的任务交给了小明,小明则找到了聪明的你,希望你能帮他解决这个问题. 输入格式 第一行包含一个正整数N,表示有个人参加了考试.接下来N行,每行有一个字符串和一个正整数,分别表示人名和对应的成绩,用一个空格分隔. 输出格式 输出一共有N行,每行一个字符串,第i行的字符串表示成绩从高到低排在第i位的人的名字,若分数一样则按人名的字典序顺序从小到…
试题 算法提高 天天向上 问题描述 A同学的学习成绩十分不稳定,于是老师对他说:"只要你连续4天成绩有进步,那我就奖励给你一朵小红花."可是这对于A同学太困难了.于是,老师对他放宽了要求:"只要你有4天成绩是递增的,我就奖励你一朵小红花."即只要对于第i.j.k.l四天,满足i<j<k<l并且对于成绩wi<wj<wk<wl,那么就可以得到一朵小红花的奖励.现让你求出,A同学可以得到多少朵小红花. 输入格式 第一行一个整数n,表示总…
试题 算法提高 欧拉函数 问题描述 老师出了一道难题,小酱不会做,请你编个程序帮帮他,奖金一瓶酱油: 从1-n中有多少个数与n互质? |||||╭══╮ ┌═════┐ ╭╯让路║═║酱油专用车║ ╰⊙═⊙╯ └══⊙═⊙═(坑爹的题面格式化,害得我用'|'来代替空格,复制到记事本上看就变成正版的了) 输入格式 输入共一行,表示一个整数n. 输出格式 输出共一行,表示从1-n中与n互质的数的个数. 样例输入 30 样例输出 8 数据规模和约定 60%的数据≤10^6 100%的数据≤2*10^9…
试题 算法提高 计算超阶乘 问题描述 计算1*(1+k)(1+2k)(1+3k)-(1+n*k-k)的末尾有多少个0,最后一位非0位是多少. 输入格式 输入的第一行包含两个整数n, k. 输出格式 输出两行,每行一个整数,分别表示末尾0的个数和最后一个非0位. 样例输入 15 2 样例输出 0 5 数据规模和约定 1<=k<=10,1<=n<=1000000. PS: 在计算的过程中就把末尾的0删掉 import java.util.Scanner; public class Ma…
算法提高 线段和点 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述 有n个点和m个区间,点和区间的端点全部是整数,对于点a和区间[b,c],若a>=b且a<=c,称点a满足区间[b,c]. 求最小的点的子集,使得所有区间都被满足. 输入格式 第一行两个整数n m 以下n行 每行一个整数,代表点的坐标 以下m行 每行两个整数,代表区间的范围 输出格式 输出一行,最少的满足所有区间的点数,如无解输出-1. 样例输入 5 5 2 6 3 8 7 2 5 3 4 3 3 2 7 6…
算法提高 P1003 时间限制:1.0s 内存限制:256.0MB 作为一名网络警察,你的任务是监视电子邮件,看其中是否有一些敏感的关键词.不过,有些狡猾的犯罪嫌疑人会改变某些单词的字母顺序,以逃避检查.请编写一个程序,发现这种调整过顺序的关键词.程序的输入有两行,第一行是关键词列表,第二行是待检查的句子.程序的输出为在该句子中所找到的经过顺序调整的关键词.(单词全部为小写,单词之间以一个空格分隔,每一行的单词个数不限) 输入: guns mines missiles aameric ssell…
**算法提高 8皇后·改** 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述 规则同8皇后问题,但是棋盘上每格都有一个数字,要求八皇后所在格子数字之和最大. 输入格式 一个8*8的棋盘. 输出格式 所能得到的最大数字和 样例输入 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45…
试题 算法提高 高精度减法 问题描述 高精度减法 输入格式 两行,表示两个非负整数a.b,且有a > b. 输出格式 一行,表示a与b的差 样例输入 1234567890987654321 9999 样例输出 1234567890987644322 import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner s…
试题 算法提高 分解质因数 问题描述 给定一个正整数n,尝试对其分解质因数 输入格式 仅一行,一个正整数,表示待分解的质因数 输出格式 仅一行,从小到大依次输出其质因数,相邻的数用空格隔开 样例输入 100 样例输出 2 2 5 5 数据规模和约定 n<=2147483647 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in=new Scanner(S…
试题 算法提高 八数码 问题描述 RXY八数码 输入格式 输入两个33表格 第一个为目标表格 第二个为检索表格 输出格式 输出步数 样例输入 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 0 8 样例输出 1 数据规模和约定 33*2 PS: 花里胡哨得,直接套代码搜 import java.util.*; public class Main { static int[]dx = {0,0,1,-1}; static int[]dy = {1,-1,0,0}; static i…
试题 算法提高 转圈游戏 问题描述 n 个小伙伴(编号从 0 到 n-1)围坐一圈玩游戏.按照顺时针方向给 n 个位置编号,从0 到 n-1.最初,第 0 号小伙伴在第 0 号位置,第 1 号小伙伴在第 1 号位置,-,依此类 推. 游戏规则如下:每一轮第 0 号位置上的小伙伴顺时针走到第 m 号位置,第 1 号位置小 伙伴走到第 m+1 号位置,-,依此类推,第n − m号位置上的小伙伴走到第 0 号位置,第 n-m+1 号位置上的小伙伴走到第 1 号位置,-,第 n-1 号位置上的小伙伴顺时…
试题 算法提高 矩阵乘法 问题描述 小明最近刚刚学习了矩阵乘法,但是他计算的速度太慢,于是他希望你能帮他写一个矩阵乘法的运算器. 输入格式 输入的第一行包含三个正整数N,M,K,表示一个NM的矩阵乘以一个MK的矩阵.接下来N行,每行M个整数,表示第一个矩阵.再接下来的M行,每行K个整数,表示第二个矩阵. 输出格式 输出有N行,每行K个整数,表示矩阵乘法的结果. 样例输入 2 1 3 1 2 1 2 3 样例输出 1 2 3 2 4 6 数据规模和约定 0<N,M,K<=100, 0<=矩…
试题 算法提高 歌唱比赛 问题描述 X市正在进行歌唱比赛,请你写一个程序计算得分. 每名选手从1到N编号,每名选手的综合成绩由以下几个部分组成: 1.歌唱得分占70% 2.才艺展示得分占20% 3.观众投票得分占10% 4.不超过五分的特殊加分(如果总分超过100分则记为100) 输入格式 第一行一个整数N,表示选手人数 接下来N行,每行四个整数,分别表示歌唱得分,才艺得分,投票得分和加分. 输出格式 输出N行,每行一个数,表示得分(保留一位小数) 样例输入 6 62 50 60 1 77 71…
试题 算法提高 特等奖学金 问题描述 土豪大学每年都会给学生颁发巨额的特等奖学金,当然,获奖的前提是要足够优秀.这所大学有n名学生,他们中的每个人都会在m门必修课的每门课上获得一个百分制的整数成绩(0-100),到了期末教务长会获得所有学生在所有必修课上的成绩报告,他会从中挑选出最优秀的k位学生,并给他们颁发奖学金. 教务长认为,某个学生只要有一门课不及格(分数<85),他就丧失了获得奖学金的资格.教务长会给所有科目按照重要性排序,在所有拥有获得奖学金资格的学生中,教务长更喜欢在更重要的科目中取…
试题 算法提高 GPA 问题描述 输入A,B两人的学分获取情况,输出两人GPA之差. 输入格式 输入的第一行包含一个整数n表示A的课程数,以下n行每行Si,Ci分别表示第i个课程的学分与A的表现. GPA=Σ(Si*Ci) / Σ(Si). 特殊地,如果Ci是'P'或者'N'(对应于通过与不通过),则第i个课程不记入GPA的计算(即当其不存在). A读入结束后读入B,B的输入格式与A相同. 保证2人的Σ(Si)非零 输出格式 输出A的GPA - B的GPA的值,保留2位小数(四舍五入) Tips…
试题 算法提高 套正方形 问题描述 给定正方形边长width,如图按规律输出层层嵌套的正方形图形. 注意,为让选手方便观看,下图和样例输出均使用""代替空格,请选手输出的时候使用空格而不是"". width=6: ****** *____* *_**_* *_**_* *____* ****** 输入格式 仅一行一个整数width. 输出格式 按规律输出图形,不要输出多余空格. 样例输入 10 样例输出 ********** *________* *_******_…
试题 算法提高 抽卡游戏 某个抽卡游戏卡池抽出限定卡的概率为p,该游戏有一个"井"的机制,抽满k次卡后直接送这张限定卡.试求获得这张限定卡需要的期望抽卡次数.输入为一行,用空格隔开的p和k.输出为一行,即期望抽卡次数,取2位小数 样例输入 0.005 250 样例输出 142.88 样例说明 第1次抽到的概率为0.005 第2次抽到的概率为(1-0.005)*0.005 第n次抽到的概率为(1-0.005)^(n-1)*0.005 第250抽到的概率为之前都没有抽到的概率,即(1-0.…