L1-1 编程解决一切
描述
编程解决一切 —— 本题非常简单,就请你直接在屏幕上输出这句话:Problem? The Solution: Programming.
。
输入格式:
在一行中输出 Problem? The Solution: Programming.
。
输入样例:
1 | 无 |
输出样例:
1 | Problem? The Solution: Programming. |
个人题解:
啊这,print就完了。
1 | print("Problem? The Solution: Programming.") |
L1-2 再进去几个人
描述
数学家、生物学家和物理学家坐在街头咖啡屋里,看着人们从街对面的一间房子走进走出。他们先看到两个人进去。时光流逝。他们又看到三个人出来。
物理学家:“测量不够准确。”
生物学家:“他们进行了繁殖。”
数学家:“如果现在再进去一个人,那房子就空了。”
下面就请你写个程序,根据进去和出来的人数,帮数学家算出来,再进去几个人,那房子就空了。
输入格式:
输入在一行中给出 2 个不超过 100 的正整数 A 和 B,其中 A 是进去的人数,B 是出来的人数。题目保证 B 比 A 要大。
输出格式:
在一行中输出使得房子变空的、需要再进去的人数。
输入样例:
1 | 4 7 |
输出样例:
1 | 3 |
个人题解:
看样例似乎就是
B - A
1 | a, b = map(int, input().split()) |
L1-3 帮助色盲
描述
在古老的红绿灯面前,红绿色盲患者无法分辨当前亮起的灯是红色还是绿色,有些聪明人通过路口的策略是这样的:当红灯或绿灯亮起时,灯的颜色无法判断,但前方两米内有同向行走的人,就跟着前面那人行动,人家走就跟着走,人家停就跟着停;如果当前是黄灯,那么很快就要变成红灯了,于是应该停下来。麻烦的是,当灯的颜色无法判断时,前方两米内没有人……
本题就请你写一个程序,通过产生不同的提示音来帮助红绿色盲患者判断当前交通灯的颜色;但当患者可以自行判断的时候(例如黄灯或者前方两米内有人),就不做多余的打扰。具体要求的功能为:当前交通灯为红灯或绿灯时,检测其前方两米内是否有同向行走的人 —— 如果有,则患者自己可以判断,程序就不做提示;如果没有,则根据灯的颜色给出不同的提示音。黄灯也不需要给出提示。
输入格式:
输入在一行中给出两个数字 A 和 B,其间以空格分隔。其中 A 是当前交通灯的颜色,取值为 0 表示红灯、1 表示绿灯、2 表示黄灯;B 是前方行人的状态,取值为 0 表示前方两米内没有同向行走的人、1 表示有。
输出格式:
根据输入的状态在第一行中输出提示音:dudu
表示前方为绿灯,可以继续前进;biii
表示前方为红灯,应该止步;-
表示不做提示。在第二行输出患者应该执行的动作:move
表示继续前进、stop
表示止步。
输入样例1:
1 | 0 0 |
输出样例1:
1 | biii |
输入样例2:
1 | 1 1 |
输出样例2:
1 | - |
个人题解:
根据题目写条件,模拟就完了
1 | a, b = map(int,input().split()) |
L1-4 四项全能
描述
新浪微博上有一个帖子给出了一道题:全班有 50 人,有 30 人会游泳,有 35 人会篮球,有 42 人会唱歌,有 46 人会骑车,至少有( )人四项都会。
发帖人不会做这道题,但是回帖有会做的:每一个才艺是一个技能点,一共是 30 + 35 + 42 + 46 = 153 个技能点,50 个人假设平均分配,每人都会 3 个技能那也只有 150,所以至少有 3 人会四个技能。
本题就请你写个程序来自动解决这类问题:给定全班总人数为 n,其中有 m 项技能,分别有
输入格式:
输入在第一行中给出 2 个正整数:
输出格式:
输出至少有多少人 m 项都会。
输入样例:
1 | 50 4 |
输出样例:
1 | 3 |
个人题解:
就是一个计算问题,假设
项人全部都会,人数为 ,剩下的人肯定是会第 项的,所以至少有 人全都会。当时没考虑到会有0人的情况看了半天不知道哪里错了。
1 | n, m = map(int,input().split()) |
L1-5 别再来这么多猫娘了!
描述
以 GPT 技术为核心的人工智能系统出现后迅速引领了行业的变革,不仅用于大量的语言工作(如邮件编写或文章生成等工作),还被应用在一些较特殊的领域——例如去年就有同学尝试使用 ChatGPT 作弊并被当场逮捕(全校被取消成绩)。相信聪明的你一定不会犯一样的错误!
言归正传,对于 GPT 类的 AI,一个使用方式受到不少年轻用户的欢迎——将 AI 变成猫娘:
部分公司使用 AI 进行网络营销,网友同样乐于使用“变猫娘”的方式进行反击。注意:图中内容与题目无关,如无法看到图片不影响解题。
当然,由于训练数据里并不区分道德或伦理倾向,因此如果不加审查,AI 会生成大量的、不一定符合社会公序良俗的内容。尽管关于这个问题仍有争论,但至少在比赛中,我们还是期望 AI 能用于对人类更有帮助的方向上,少来一点猫娘。
因此你的工作是实现一个审查内容的代码,用于对 AI 生成的内容的初步审定。更具体地说,你会得到一段由大小写字母、数字、空格及 ASCII 码范围内的标点符号的文字,以及若干个违禁词以及警告阈值,你需要首先检查内容里有多少违禁词,如果少于阈值个,则简单地将违禁词替换为<censored>
;如果大于等于阈值个,则直接输出一段警告并输出有几个违禁词。
输入格式:
输入第一行是一个正整数
然后的一行是一个非负整数
最后是一行不超过 5000 个字符的字符串,表示需要检查的文字。
从左到右处理文本,违禁词则按照输入顺序依次处理;对于有重叠的情况,无论计数还是替换,查找完成后从违禁词末尾继续处理。
输出格式:
如果违禁词数量小于阈值,则输出替换后的文本;否则先输出一行一个数字,表示违禁词的数量,然后输出He Xie Ni Quan Jia!
。
输入样例1:
1 | 5 |
输出样例1:
1 | BianCheng <censored> ba! <censored> De Hua Ye Keyi Shuo! BuYao <censored> NeiRong. |
输入样例2:
1 | 5 |
输出样例2:
1 | 3 |
输入样例3:
1 | <censored>A<censored>B |
输出样例3:
1 | <censored>A<censored>B |
输入样例4:
1 | 2 |
输出样例4:
1 | AA<censored><censored> |
输入样例5:
1 | 2 |
输出样例5:
1 | AAA<censored>B |
个人题解:
😀 猫娘,快变( •ᴗ• )。 查找替换的模拟题,但有两个测试点超时,当时以为是违禁词是替换词的子串(没想到还猜对了,可惜当时没有想到合适的方法),这里就先放着当时的代码吧。
1 | # 4 10 超时 |
1 | n = int(input()) |
L1-6 兰州牛肉面
描述
兰州牛肉面是历史悠久的美食,根据牛肉面的宽窄、配料的种类,可以细分为上百个不同的品种。你进到兰州的任何一家牛肉面馆,只说:“来一碗牛肉面!”就好像进到加州的咖啡馆说“来一杯咖啡”一样,会被店主人当成外星人……
本题的任务是,请你写程序帮助一家牛肉面馆的老板统计一下,他们一天卖出各种品种的牛肉面有多少碗,营业额一共有多少。
输入格式:
输入第一行给出一个正整数
随后是一天内客人买面的记录,每条记录占一行,格式为:
1 | 品种编号 碗数 |
其中碗数
保证是正整数。当对应的品种编号
为0
时,表示输入结束。这个记录不算在内。
输出格式:
首先输出
输入样例:
1 | 5 |
输出样例:
1 | 10 |
个人题解:
根据题目要求进行计算即可
1 | n = int(input()) |
L1-7 整数的持续性
描述
从任一给定的正整数
本题就请你编写程序,找出任一给定区间内持续性最长的整数。
输入格式:
输入在一行中给出两个正整数
输出格式:
首先在第一行输出区间
输入样例:
1 | 500 700 |
输出样例:
1 | 5 |
个人题解:
这就是一个持续性函数的编写
1 | a,b = map(int, input().split()) |
L1-8 九宫格
描述
九宫格是一款数字游戏,传说起源于河图洛书,现代数学中称之为三阶幻方。游戏规则是:将一个
本题并不要求你写程序解决这个问题,只是对每个填好数字的九宫格,判断其是否满足游戏规则的要求。
输入格式:
输入首先在第一行给出一个正整数
输出格式:
对每个给定的九宫格,判断其中的数字是否满足游戏规则的要求。满足则在一行中输出
输入样例:
1 | 3 |
输出样例:
1 | 1 |
个人题解:
遍历就完了,主要是拆分成小网格比较麻烦,当时就列举了9个网格可还行😂。
1 | n = int(input()) |
L2-1 鱼与熊掌
描述
《孟子 · 告子上》有名言:“鱼,我所欲也,熊掌,亦我所欲也;二者不可得兼,舍鱼而取熊掌者也。”但这世界上还是有一些人可以做到鱼与熊掌兼得的。
给定
输入格式:
输入首先在第一行给出 2 个正整数,分别是:
随后
1 | K M[1] M[2] ... M[K] |
其中M[*]
是物品种类的编号。题目保证每个人的物品种类清单中都没有重复给出的种类。最后是查询信息:首先在一行中给出查询总量
输出格式:
对每一次查询,在一行中输出两种物品兼得的人数。
输入样例:
1 | 4 8 |
输出样例:
1 | 2 |
个人题解:
将每种物品的拥有者放入一个集合,算出两个集合的交集,即为答案。(python的集合超时,试过用排序也超时了),是我哪里做的不好吗。
1 | ## 2 3 4 测试点超时 |
1 | ## 同样 2 3 4 测试点超时 |
L2-2 懂蛇语
描述
在《一年一度喜剧大赛》第二季中有一部作品叫《警察和我之蛇我其谁》,其中“毒蛇帮”内部用了一种加密语言,称为“蛇语”。蛇语的规则是,在说一句话 A 时,首先提取 A 的每个字的首字母,然后把整句话替换为另一句话 B,B 中每个字的首字母与 A 中提取出的字母依次相同。例如二当家说“九点下班哈”,对应首字母缩写是 JDXBH
,他们解释为实际想说的是“京东新百货”……
本题就请你写一个蛇语的自动翻译工具,将输入的蛇语转换为实际要表达的句子。
输入格式:
输入第一行给出一个正整数
随后在一行中给出一个正整数
输出格式:
对每一句查询,在一行中输出其对应的句子。如果句子不唯一,则按整句的字母序输出,句子间用 |
分隔。如果查不到,则将输入的句子原样输出。
注意:输出句子时,必须保持句中所有字符不变,包括空格。
输入样例:
1 | 8 |
输出样例:
1 | jing dong xin bai huo |
个人题解:
一存一查,按照字典查到的数据排序输出即可。
1 | n = int(input()) |
L2-3 满树的遍历
描述
一棵“
注:树中结点的度是其拥有的子树的个数,而树的度是树内各结点的度的最大值。
输入格式:
输入首先在第一行给出一个正整数 0
。题目保证给出的是一棵合法多叉树,只有唯一根结点。
输出格式:
首先在一行中输出该树的度。如果输入的树是yes
,否则输出no
。最后在第二行输出该树的前序遍历序列,数字间以 1 个空格分隔,行首尾不得有多余空格。
注意:兄弟结点按编号升序访问。
输入样例1:
1 | 7 |
输出样例1:
1 | 3 yes |
输入样例2:
1 | 7 |
输出样例2:
1 | 3 no |
个人题解:
根据题目进行模拟即可,由根节点知道
为多少,然后深搜遍历每一个节点判断其度是不是为 。最后是正常的先序遍历,因为节点是由低到高加入的,所以不需要排序。
1 | n = int(input()) |
L2-4 吉利矩阵
描述
所有元素为非负整数,且各行各列的元素和都等于
本题就请你统计一下,把
输入格式:
输入在一行中给出
输出格式:
在一行中输出满足题目要求条件的方阵的个数。
输入样例:
1 | 7 3 |
输出样例:
1 | 666 |
个人题解:
剪枝什么的不会啦,还超时,不如打表来的快。 (看我空间换时间)
1 | # 4 超时 (9 4 耗时 81.80609345436096s 时机已到、今日起兵!打表去 ~) |
1 | l, n = map(str, input().split()) |
L3-1 夺宝大赛
描述
夺宝大赛的地图是一个由
假设所有队伍都将以最快速度冲向大本营,请你判断哪个队伍将获得最后的胜利。
输入格式:
输入首先在第一行给出两个正整数
接下来是参赛队伍信息。首先在一行中给出正整数 x y
。这里规定地图左上角坐标为 1 1
,右下角坐标为 n m
,其中 n
为列数,m
为行数。注意参赛队只能在地图范围内移动,不得走出地图。题目保证没有参赛队一开始就落在有障碍的方格里。
输出格式:
在一行中输出获胜的队伍编号和其到达大本营所用的单位时间数量,数字间以 1 个空格分隔,行首尾不得有多余空格。若没有队伍能获胜,则在一行中输出 No winner
.
输入样例1:
1 | 5 7 |
输出样例1:
1 | 7 6 |
样例 1 说明:
七支队伍到达大本营的时间顺次为:7、不可能、5、3、3、5、6,其中队伍 4 和 5 火拼了,队伍 3 和 6 火拼了,队伍 7 比队伍 1 早到,所以获胜。
输入样例 2:
1 | 5 7 |
输出样例2:
1 | No winner. |
个人题解:
一眼看到
感觉难度应该挺高的,题目又是小作文,立马摆了。后来有人告诉我bfs就可以解决,仔细一看发现这题是个多源最短路问题。(深搜不知道哪里有问题)
1 | ## 广搜 |
1 | # 深搜 3 4 报错 |
L3-2 工业园区建设
描述
某工业园区要进行建设,共有
现在工业园区计划在空地上建设至多
两块用地的距离等于他们的编号的差;即 1 号用地与 2 号用地的距离为 1。一个空地上只能建设一个工厂,仓库可以跟工厂建在一起。
输入格式:
数据的第一行是一个正整数 T,表示数据的组数。
每组数据的输入第一行为三个整数
接下来的一行是一个只由
数据约定:
设
输出格式:
输出
输入样例:
1 | 3 |
输出样例:
1 | 3 2 2 2 3 |
个人题解:
什么?不会做?暴力,爽 ~
1 | # 4 6 7 超时 |
L3-3 攀岩
描述
九条可怜最近接触到了攀岩这项运动。作为一名运动量接近为零的家里蹲,相比于动手攀岩,可怜显然更加享受攀岩运动中动脑的部分,即对攀岩路线的规划。
为了只动脑,可怜设计了一个简易的攀岩机器人来帮她动手。这个机器人由一个核心(大小可以忽略不计)和三个长度至多为 r 的可伸缩机械臂组成,如下图所示:
一面攀岩墙可以看成一个二维的无穷平面,上面有
在攀岩过程中,机器人需要保证每时每刻都有两支机械臂抓握住两个不同的岩点。在满足这点的情况下,机器人可以在机械臂长度允许的情况下进行如下移动:
-
连续地将核心的位置从当前位置移动到任意位置。
-
用第三条机械臂抓握住一个岩点(可以与某条其他机械臂抓住相同的岩点)。
-
让一条机械臂松开其抓握的岩点。注意,只有当另外两条机械臂已经抓握住不同岩点时,才能进行这项操作。
注: 我们假设岩点的大小是无穷小,不会影响机器人的移动,比如机械臂、核心轨迹都可以经过岩点。
下面是一个攀岩过程的例子,假设平面上有四个岩点,坐标分别是
-
初始时,可怜将机器人的核心放在
处,第三根手臂随意地放在 处。 -
机器人的第三机械臂抓握住岩点
。 -
机器人的第二机械臂松开,并移动到
处。 -
机器人的核心移动至
,此时第一机械臂的长度到达极限 。 -
机器人的第二机械臂抓握住岩点
-
机器人的第一机械臂松开,并抓握住岩点
,完成攀岩目标。
显然,机器人的机械臂长度越短,对可怜的路径规划能力要求越高。但是这个机械臂的长度也不能太短,不然机器人可能无论如何都无法完成攀岩任务。比如在上述任务中,如果机械臂长度小于
因此,为了在合理范围内尽可能地挑战自己的大脑,可怜希望你对于攀岩馆中的每一项攀岩任务,都帮她计算(在可能完成攀岩任务的前提下)机械臂的最短长度是多少。
输入格式:
第一行输入一个整数
每个任务的第一行都是一个整数
接下来 n 行,每行两个整数
输入保证满足
输出格式:
对于每个攀岩任务输出一行一个浮点数,表示最短可能的机械臂长度。你的答案在绝对误差或者相对误差不超过
输入样例:
1 | 4 |
输出样例:
1 | 0.99999999498 |
样例解释
第一组数据和题面中的攀岩任务一致,其最小机械臂长度为 1,而样例输出的答案在
下面给出了一个机械臂长度为 1 时的攀岩方案。攀岩开始时,机器人的核心与岩点
第二组数据中,最小机械臂长度为
个人题解:
( 似乎是求三角形外心??? )
1 | # 暂无 |