【算法题】520 钻石争霸赛 2024 全解析

news2024/11/16 23:30:48

都是自己写的代码,发现自己的问题是做题速度还是不够快

520-1 爱之恒久远
在 520 这个特殊的日子里,请你直接在屏幕上输出:Forever and always。
输入格式:
本题没有输入。
输出格式:
在一行中输出 Forever and always。
输入样例:

输出样例:
Forever and always

过于简单,略

520-2 良辰吉日
万事都讲究“吉利”二字,挑选一个良辰吉日对结婚来说更是至关重要。婚礼日期的选择有非常多的讲究,这里我们只论最简单的一条:选双日,讲究“好事成双”。
“双日”指两种日期均为偶数的日子。两种日期是指每个月的第 x 天、每周的第 y 天。
现给定一对新人都有空的日期 x 和 y,请你写程序判断一下是不是双日。
输入格式:
输入在一行中给出一对整数 x 和 y,其中 1≤x≤31,1≤y≤7。
输出格式:
如果输入是一个双日,在一行中输出 x y _!;否则输出 x y -_-。其中 x 和 y 是输入的 x 和 y 的值。

输入样例 12 4
输出样例 12 4 ^_^!
输入样例 226 7
输出样例 226 7 -_-

in_str=input()
result=in_str.split(' ')
flag=1
for i in result:
 if(int(i)%2):
  flag=0
if(flag):
 print(in_str,'^_^!')
else:
 print(in_str,'-_-')

520-3 记小本本
小情侣吵架拌嘴是很正常的事情,但拿小本本记下来就不好了,应该写个程序自动记……
本题的要求比较简单,只是统计吵架次数而已。姥姥给小情侣们做红色、绿色两个按钮,每次吵架就按红色按钮,想知道已经吵了多少次了就按绿色按钮。你就来实现这两个按钮的功能。
输入格式:
输入由一系列 0 和 1 组成,每个数字占一行。1 代表红色按钮被按下,0 代表绿色按钮被按下。当出现任何一个既不是 0 也不是 1 的数字时,表示他们把电源线扯断了,输入结束,最后那个数字不要处理。
输出格式:
对每一个输入的 0,在一行中输出这次按下绿色按钮之前一共吵了多少次架。
题目保证每个输出的数字均不超过 10^4。

输入样例:
1
1
1
0
1
1
0
1
2
输出样例:
3
5

sum=0
while(1):

 num=int(input())
 if(num!=1 and num!=0):
  break
 if(num==1):
  sum+=1
 if(num==0):
  print(sum)

520-4 土味情话但数学
喜欢数学的人对数字特别敏感,下面就请你从一大堆土味情话中,把那些带数字的情话挑出来。

输入格式:
输入首先在第一行给出一个正整数 n(≤100),是土味情话的条数。随后 n 行,每行(以回车结束)给出一句土味情话。用汉语拼音给出的土味情话由不超过 100 个数字、中文字的汉语拼音、标点符号组成,相邻两字间以标点符号或/和 1 个空格分隔,每个字的拼音长度不超过 5 个小写英文字母,数字为不超过 100 的非负整数。题目保证每句土味情话都不是空话(至少有一个字的拼音或数字)。

输出格式:
按照输入的顺序,原样输出那些句子中带数字的土味情话。如果完全没有带数字的句子,则输出 Not interesting.。

输入样例 1:
5
wo fa xian ni jin tian you dian guai, wei shen me? guai ke ai de.
wo shi 9 ni shi 3, chu le ni hai shi ni.
ke yi bang wo xi ge dong xi ma? xi shen me? xi huan wo.
wo 1 dian ye bu xiang ni, 1 dian ban zai xiang.
1 dui 0 shuo, wo chu le ni, yi qie du mei you yi yi.

输出样例 1:
wo shi 9 ni shi 3, chu le ni hai shi ni.
wo 1 dian ye bu xiang ni, 1 dian ban zai xiang.
1 dui 0 shuo, wo chu le ni, yi qie du mei you yi yi.

输入样例 2:
2
wo fa xian ni jin tian you dian guai, wei shen me? guai ke ai de.
ke yi bang wo xi ge dong xi ma? xi shen me? xi huan wo.

输出样例 2:
Not interesting.

num=int(input())

not_inter=1

while(num):
 flag=0
 num-=1
 in_str=input()
 result=in_str.split(' ')
 for str_ in result:
  if(str_.isdigit()==True):
   flag=1
   not_inter=0
 if(flag==1):
  print(in_str)

if(not_inter==1):
  print('Not interesting.')
  

520-5 婚礼上的游戏
姥姥在劳动节假期出席了八云学长的婚礼,婚礼上有一个小游戏比较适合拿来出题,于是就有了这个题目。
在游戏中,主持人手举一个计时器,递给参与游戏的宾客一个红色按钮,按下后计时器上的数字就开始以每厘秒一个数字的速度跳动。宾客要在最接近 3 秒(即 300 厘秒)的时刻再次按下按钮,停止计时。停止的时刻最接近 300 厘秒的宾客获得大奖。
姥姥记录了所有宾客们玩这个游戏的成绩,下面就请你统计一下,有多少人获得了大奖。

输入格式:
输入首先在第一行给出一个正整数 n(≤1000),是参与游戏的宾客数量。随后 n 行,每行给出一位宾客的计时结果,是以厘秒为单位,在区间 [100,500] 内的整数。

输出格式:
输出获得大奖的宾客人数,即计时结果最接近 300 厘秒的并列人数。

输入样例:
5
157
298
302
303
325

输出样例:
2

num=int(input())
people=[]
while(num):
 num-=1
 people.append(int(input()))
#print(people)
min=300
sum=1
for i in people:
 num=abs(i-300)
 if(num<min):
  min=num
 elif(num==min):
  sum+=1
print(sum)
  

520-6 借贷还是赠予
每逢 520 这类日子,许多情侣之间会转账 520 元、1314 元等金额,尤其是热恋期,双方对花费不太计较,但一旦感情破裂,经济纠纷随之而来。日常生活中,情侣间的转账是借款还是赠与?法官认为,“1314”、“520”等对男女朋友关系具有特殊含义的金额,应认定为赠与。
现给定一个情侣特殊数字的集合,对于某人的转账清单,请你标记出哪些是赠予,哪些是借贷。

输入格式:
输入首先在第一行给出一个正整数 n(≤),是情侣特殊数字的数量。随后一行给出 n 个不超过 104 的正整数。
接下来一行给出一个正整数 m(≤),是转账记录的条数。随后一行给出 m 个不超过 的转账金额。

输出格式:
按照输入的顺序处理转账金额,每个处理结果占一行。对于每个转账金额,如果其是情侣特殊数字集合中的数字,就在对应行中输出 ZengYu,否则输出 JieDai。

输入样例:
4
1314 521 2199 520
10
10 12345678 520 2200 233 2199 1314 666 888 521
输出样例:
JieDai
JieDai
ZengYu
JieDai
JieDai
ZengYu
ZengYu
JieDai
JieDai
ZengYu

num=input()
zengyu=input().split(' ')
num=input()
money=input().split(' ')
#print(money)
for i in money:
 if(i in zengyu):
  print('ZengYu')
 else:
  print('JieDai')
  

520-7 静待缘分
在这里插入图片描述

不要被输入格式中的10^6迷惑
整个题目的意思为x+y+x-y+xy+x/y=N
化简得到 2xy+xy^2+x=N 由此可见 将x固定住,就可以得到上面题目所注的一元二次方程,a=x,b=2x,c=x-N,
注意查看题目所说的N是正整数,则要么同负,要么同正,同时根据提示x/y为整数也可得 i=x/y的范围是>=1,如何得到i的最大范围呢?
分类讨论

  1. 当x>0 y>0,由2x+xy+i=N得到 i最大为N
  2. 当x<=0 y<0, 2x+xy+i=N得到x(2+y)+i=N,再分类讨论
    1. 若2+y<=0,则i最大为N
    2. 若2+y>0,则0>y>-2,假设y=0,则i最大为N-2x,
      假设i=N-2x,则根据前文所述 i=x/y>=1,得到N-2x>=1且N>0,得到0>=x>-0.5,则i<=N
      由此得到 我们可以将i作为一个固定值,从而求出x和y,i的范围在1~N(边界均包含)

(n % i == 0 && (n / i ==int(sqrt(n / i)) * int(sqrt(n / i))))这里是回应了题目中的提示,能够整除

//这里做题中因为时间原因先跳到第八题了 第七题这里请参考其他博主的题解,这里仅说明思路,python版可自行写出
//https://blog.csdn.net/C_K_Y/article/details/139074240
#include<iostream>
#include<cmath>
#include<algorithm>
#include<map>
using namespace std;
map<int,int> mp;
int main(){
    int n;
    cin>>n;
    for(int i = 1;i<=n;i++)
        if(n % i == 0 && (n / i ==int(sqrt(n / i)) * int(sqrt(n / i))))
        {
            int y = -1 + sqrt(n / i);
            int x = i * y;
            mp[x] = y;
            y = -1 - sqrt(n / i);
            x = i * y;
            mp[x] = y;
        }
    for(auto it : mp){
        if(it.second == 0) continue;
        cout<<"("<<it.first<<", "<<it.second<<")"<<endl;
    }
    return 0;
}

520-8 测测名字
有一个“爱情测试研究所”请你帮助写一个测恋人名字的小程序,需求如下:
需要准备一本“答案之书”,书中列出若干由 4 ~ 8 个中文字组成的句子,即为测试答案。部分答案是正向的,例如“其实我在等你”;部分答案是负向的,例如“相见不如怀念”。
提取句子中每个字的汉语拼音首字母,例如“其实我在等你”对应“qswzdn”,“相见不如怀念”对应“xjbrhn”。
接收两位用户输入的姓名,同样提取名字中每个字的汉语拼音首字母,形成姓名缩写。例如“张丹宁”对应“zdn”,“齐少文”对应“qsw”。
将两位用户的姓名缩写拼接在一起,去答案之书中寻找缩写完全一致的答案,并输出。例如“齐少文”和“张丹宁”的名字拼接起来,就可以得到“其实我在等你”。
当然答案之书的答案可能是不唯一的 —— 两个名字的先后拼接顺序就至少对应了两种可能的答案。对于同一种拼接,答案之书也可能有多个答案与之对应。则输出规则如下:
在这里插入图片描述
在这里插入图片描述

def find_first_an(words):
    string = ''
    for i in range(1, len(words)):
        string += words[i][0]
    return string

def find_first(words):
    string = ''
    for i in range(0, len(words)):
        string += words[i][0]
    return string

num1 = int(input())
dic = {}  # 编号,正负向,缩写,答案
answer = []

for i in range(1, (num1 + 1)):
    in_str = input()
    in_str_list = in_str.split(' ')
    dic = {'i': i, 'direct': in_str_list[0], 'sx': find_first_an(in_str_list), 'an': in_str[2:]}
    answer.append(dic)
# print(answer)

num2 = int(input())
while (num2):
    people1 = input()
    people2 = input()
    people1_ = people1.split(' ')
    people2_ = people2.split(' ')
    people1 = ''.join(people1_ )
    people2 = ''.join(people2_ )
    people1_ = find_first(people1_)
    people2_ = find_first(people2_)

    result1 = people1_ + people2_
    result2 = people2_ + people1_
    posi_an = []
    nega_an = []
    for j in answer:
        if ((j['sx'] == result1) or (j['sx'] == result2)):
            if (j['direct'] == '1'):
                posi_an .append( j['an'])
            else:
                nega_an .append( j['an'])
    if (posi_an == []):
        posi_an = nega_an
    if (len(posi_an) > 1):
        nt = len(people1)+len(people2)
        na = len(posi_an)
        k = nt % na
        print(posi_an[k])
    elif(len(posi_an) == 1) :print(''.join(posi_an))
    else:print('tian ji bu ke xie lu')
    num2 -= 1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1697864.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024年推荐的适合电脑和手机操作的线上兼职副业平台

总是会有人在找寻着线上兼职副业&#xff0c;那么在如今的2024年&#xff0c;互联网提供了诸多方便&#xff0c;无论你是宝妈、大学生、程序员、外卖小哥还是打工族&#xff0c;如果你正在寻找副业机会&#xff0c;那么这篇文章将为你提供一些适合电脑和手机操作的线上兼职副业…

[Linux]文件/文件描述符fd

一、关于文件 文件&#xff1d;内容&#xff0b;属性 那么所有对文件的操作&#xff0c;就是对内容/属性操作。内容是数据&#xff0c;属性也是数据&#xff0c;那么存储文件&#xff0c;就必须既存储内容数据&#xff0c;又存储属性数据。默认就是在磁盘中的文件。当进程访问…

知识分享:隔多久查询一次网贷大数据信用报告比较好?

随着互联网金融的快速发展&#xff0c;越来越多的人开始接触和使用网络贷款。而在这个过程中&#xff0c;网贷大数据信用报告成为了评估借款人信用状况的重要依据。那么&#xff0c;隔多久查询一次网贷大数据信用报告比较好呢?接下来随小易大数据平台小编去看看吧。 首先&…

YOLOV5 改进:替换backbone为EfficientNet

1、介绍 本章将会把yolov5的主干网络替换成EfficientNet V2,这里直接粘贴代码 详细的可以参考之前的内容:YOLOV5 改进:替换backbone(MobileNet为例)_yolov5主干网络更换为mobile-CSDN博客 更多的backbone更换参考本专栏: YOLOV5 实战项目(训练、部署、改进等等)_听风吹…

2024电工杯B题平衡膳食食谱的优化设计及评价原创论文分享

大家好&#xff0c;从昨天肝到现在&#xff0c;终于完成了2024电工杯数学建模B题的完整论文啦。 实在精力有限&#xff0c;具体的讲解大家可以去讲解视频&#xff1a; 给大家看一下目录吧&#xff1a; 目录 摘 要&#xff1a; 10 一、问题重述 14 二&#xff0e;问题分析 …

2024.05.26 第 399 场周赛

Leetcode 第 399 场周赛 优质数对的总数 I Leetcode 优质数对的总数 I 给你两个整数数组 nums1 和 nums2&#xff0c;长度分别为 n 和 m。同时给你一个正整数 k。 如果 nums1[i] 可以被 nums2[j] * k 整除&#xff0c;则称数对 (i, j) 为 优质数对&#xff08;0 < i < n…

航运复兴?大摩不信!

大摩认为&#xff0c;从供需关系来看红海危机只是推迟了航运业下行周期的到来&#xff0c;一旦干扰消除&#xff0c;行业可能重回周期性低迷。 红海危机加剧运力紧张&#xff0c;航运市场价格飞涨。 大摩在24日的一份报告中指出&#xff0c;受红海危机干扰航运市场运力&#…

加密与安全_AES RSA 密钥对生成及PEM格式的代码实现

文章目录 RSA&#xff08;非对称&#xff09;和AES&#xff08;对称&#xff09;加密算法一、RSA&#xff08;Rivest-Shamir-Adleman&#xff09;二、AES&#xff08;Advanced Encryption Standard&#xff09; RSA加密三种填充模式一、RSA填充模式二、常见的RSA填充模式组合三…

Python小游戏——俄罗斯方块

文章目录 项目介绍环境配置代码设计思路1.初始化和导入库&#xff1a;2.定义颜色和屏幕尺寸&#xff1a;3.定义游戏逻辑&#xff1a;4.游戏循环&#xff1a; 源代码效果图 项目介绍 俄罗斯方块游戏是一款经典的益智游戏&#xff0c;玩家通过旋转和移动各种形状的方块&#xff…

页面<html>上多了一个滚动条,定位发现是<body>里面多了一个id为trans-tooltip的div

现象分析&#xff1a; 页面根标签html多了一个滚动条&#xff0c;发现body里面多了一个id为trans-tooltip的div&#xff0c;虽然width为0&#xff0c;height为0&#xff0c;但是其子元素还是有高度&#xff0c;占据了空间&#xff0c;最终导致了滚动条&#xff1b; 根本原因&…

怎么在pyqt中显示matplotlib的绘图?

想要在pyqt中显示matplotlib的绘图&#xff0c;在绘图时&#xff0c;其实不必使用以下语句&#xff1a; matplotlib.use("Qt5Agg") # 声明使用QT5最关键的语句是&#xff1a; from matplotlib.backends.backend_qt5agg import FigureCanvasQTAggFigureCanvasQTAgg…

Selenium 自动化测试工具<2>(Selenium 常用API的使用方法)

文章目录 浏览器操作浏览器最大化设置浏览器的大小浏览器的前进和后退操作浏览器滚动条 键盘事件单个按键用法键盘组合键用法 鼠标事件不同窗口搜索定位一组元素定位多层框架下拉框定位alert、confirm、prompt 的处理上传文件操作自动截屏 继上一篇文章对 Selenium API 的使用&…

HTML蓝色爱心

目录 写在前面 HTML入门 完整代码 代码分析 运行结果 系列推荐 写在后面 写在前面 最近好冷吖&#xff0c;小编给大家准备了一个超级炫酷的爱心&#xff0c;一起来看看吧&#xff01; HTML入门 HTML全称为HyperText Markup Language&#xff0c;是一种标记语言&#…

Linux(六)

Linux&#xff08;六&#xff09; 自定义头文件自定义头文件中写什么如何引入头文件条件编译条件编译作用 gcc工作原理Make 工作管理器什么是Make什么是Makefile/makefileMakefile假目标Makefile中的变量自定义变量预定义变量自动变量 Makefile中变量展开方式递归展开方式简单展…

【Python】 如何使用.whl文件安装Python包?

基本原理 在Python的世界中&#xff0c;.whl文件是一种分发格式&#xff0c;它代表“Wheel”。Wheel是一种Python包格式&#xff0c;旨在提供一种快速、可靠且兼容的方式&#xff0c;用于安装Python库。与源代码包相比&#xff0c;Wheel文件是预编译的&#xff0c;这意味着它们…

【2024.5.26 软件设计师】记录第一次参加软考(附资料)

&#x1f57a;作者&#xff1a; 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux &#x1f618;欢迎 ❤️关注 &#x1f44d;点赞 &#x1f64c;收藏 ✍️留言 文章目录 前言考试分析选择题案例分析题话外 软考总结资料 前言 这是我第一次参加软考&#xff0c;其实我并…

家乡特色|基于SprinBoot+vue的家乡特色推荐系统(源码+数据库+文档)

家乡特色推荐系统 目录 基于SprinBootvue的家乡特色推荐系统 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2管理员功能模块 3用户功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&…

京东Java社招面试题真题,最新面试题

Java中接口与抽象类的区别是什么&#xff1f; 1、定义方式&#xff1a; 接口是完全抽象的&#xff0c;只能定义抽象方法和常量&#xff0c;不能有实现&#xff1b;而抽象类可以有抽象方法和具体实现的方法&#xff0c;也可以定义成员变量。 2、实现与继承&#xff1a; 一个类…