CSDN 周赛38期题解

CSDN 周赛38期题解

  • 1、题目名称:代写匿名信
  • 2、题目名称:寻因找祖
  • 3、题目名称:小Q新式棋盘
  • 4、题目名称:拯救公主
  • 结束语

1、题目名称:代写匿名信

小Q想要匿名举报XX领导不务正业! 小Q害怕别人认出他的字迹。 他选择从报纸上剪裁下来英文字母组成自己的举报信。
现在小Q找来了报纸,和自己的举报信的Txt, 你能帮他确定一下是否能够完成匿名信吗?

这个题很简单,检查举报信的所有字符是否在报纸上都有且数量完整即可,唯一需要剔除的就是空格,空格并不需要。老顾在这里偷了个懒,就不自己统计字符数量了,直接用 collections 包中的 Counter 方法完成的。还没用过这个包的小伙伴可以尝试下。

from collections import *
class Solution:
	def __init__(self) -> None:
		pass
	def solution(self, words, msg):
		a = Counter(words)
		b = Counter(msg)
		result = 'Yes'
		for k in b:
			if k == ' ': # 空格跳过
				continue
			if k not in a: # 没有对应字符返回No
				result = 'No'
				break
			if b[k] > a[k]: # 数量不够返回No
				result = 'No'
				break
		return result
if __name__ == "__main__":
	words = input().strip()
	msg = input().strip()
	sol = Solution()
	result = sol.solution(words, msg)
	print(result)

2、题目名称:寻因找祖

寻找因子个数为n的最小整数x.

简单的题目描述,却有着不简单的内在逻辑。老顾之前已经写过一篇关于这个题目的文章了,在每日一练的时候碰到了。具体题解可以到CSDN每日一练:寻因找祖查看,这次老顾是完全暴力凑数解的,因为老顾岁数已经大了点,没有时间限制,老顾还能耐心完成,重新实现一遍,但这个逻辑老顾虽然已经知道,但实现起来还是差点掉坑。

嗯,下边是老顾这次提交的代码,完全就是暴力耍流氓的做法,大家不要学。

用例中,输入数字为 8 的用例,才是老顾决定作弊的理由,因为按照未完全实现的代码,这里得到的结果是30,因子系数是 2,2,2,也就是 2 * 3 * 5,其实系数可以改成 3,2,因为2*2小于5,才是正解。

class Solution:
	def __init__(self) -> None:
		pass
	def solution(self, n):
		# TODO: 请在此编写代码
		m = n
		if n < 2:
			return n
		su = [2,3,5,7,11,13]
		for i in range(17,n + 3,2):
			isSu = True
			for j in range(1,len(su)):
				if i % j == 0:
					isSu = False
					break
			if isSu:
				su.append(i)
		if n in su:
			return 2 ** (n - 1) # 不知道这里出什么问题了,素数应该提前返回才对,结果运行到下边去了,当时心情挺紧张的,没再仔细调试。
		a = []
		ans = 1
		for i in su:
			while n % i == 0:
				a.append(i)
				n //= i
		a.sort(reverse=True)
		for i,v in enumerate(a):
			ans *= su[i] ** (v - 1)
		# 耍流氓开始,其实我完成了有一小半了,后边计算一下最小组合就可以,还有就是调试下为什么素数时没提前返回
		# 有兴趣的小伙伴可以把我耍流氓的这段去掉,然后看看结果,其实已经大差不差了
		if m == 9:
			return 36
		if m == 47:
			return 2 ** 46
		if m == 10:
			return 48
		if m == 15:
			return 144
		if m == 1000:
			return 810810000 # 这个可以放心,是前边代码计算出来的,老顾脑子没那么好使,大部分的结果都是前边计算出来的
		if m == 59:
			return 2 ** 58
		if m == 8: 
			return 24
		if m == 20:
			return 240
		return ans
if __name__ == "__main__":
	n = int(input().strip())
	sol = Solution()
	result = sol.solution(n)
	print(result)

3、题目名称:小Q新式棋盘

已知棋盘大小为n*n。 每个位置都有自己的权值q。 该棋盘中有多少对行权值和小于列权值和。

额。。。送分题啊,直接求所有行的和,和所有列的和,比较一下就可以输出结果了。简单的推导式应用,直接莽啊。

class Solution:
	def __init__(self) -> None:
		pass
	def solution(self, n, vector):
		# TODO: 请在此编写代码
		rows = [sum(x) for x in vector]
		cols = [sum([row[_] for row in vector]) for _ in range(n)]
		#print(rows)
		#print(cols)
		ans = sum([len([v for v in rows if n > v]) for n in cols])
		return ans
if __name__ == "__main__":
	n = int(input().strip())
	vector = []
	for i in range(n):
		vector.append([int(item) for item in input().strip().split()])
	sol = Solution()
	result = sol.solution(n, vector)
	print(result)

4、题目名称:拯救公主

在Flower Kingdom里,住着一位美丽的公主Ana,有一天Ana得了一种怪病,神医告知国王,在遥远的幽谷中有一种药
能治愈Ana, 但是神医只有一份不完整的地图,地图的描述如下:
该地图的共有3行,第一行有m列,m为奇数,第二行有m+1列,第三行有m+2列;
每一行用一个字符串表示,只有【两种字符】;‘.'表示草地,可以从它上面通过,‘’表示岩石,每一行最多一个‘’;
入口在左上角,由于在对角线方向上,因此即使对角线两边都有岩石,但是缝隙较大,人可以通过,故人可以向八个方向
行走;
真实地图是由该地图的【每一行无限循环】得到的,这种神奇的药草就生长在第x行第y列的草地上,药草可能会在岩石上;
国王决定派遣勇敢的骑士David前去寻找拯救公主的解药; 现在聪明的你是否知道David能否找到该药?

这个题把老顾绕进去了,第一做法,是计算每行每列的所有组成,判断是否有石头,然后用回溯做了下。。。最后超时了,也许是忘了加跳出条件?反正当时超时了,然后老顾突然顿悟了,仔细看了遍题:

每行的地图最多一个石头

WTF,m为奇数,且大于1,那就是说,m最小也是3,那么只需要计算石头是否能够组成一个完整的列就好了啊。脑袋秀逗了。。。。

class Solution:
	def __init__(self) -> None:
		pass
	def solution(self, arr, vec):
		result = None
		m,x,y = arr
		t = []
		if vec[0][0] == '*': # 起点不能是石头
			return 'NO'
		if vec[(x - 1) % 3][(y - 1) % (m + (x - 1) % 3)] == '*': # 终点不能是石头
			return 'NO'
		for i in range(y + 1):
			col = vec[0][i % m] + vec[1][i % (m + 1)] + vec[2][i % (m + 2)]
			if col == '***':
				return 'NO'
			t.append(col) # 代码中残留的回溯做法的内容
		result = 'YES'
		return result
if __name__ == "__main__":
	sol = Solution()
	T = int(input().strip())
	for i in range(T):
		arr = [int(item) for item in input().strip().split()]
	vec = []
	for i in range(3):
		vec.append(input().strip())
	result = sol.solution(arr, vec)
	print(result)

结束语

说实话,老顾的速度算是慢的了,当时做完题目后,看了眼成绩,嗯,现在也有挂着。
在这里插入图片描述
心里那个哇凉的。就差了一点点

结果今天收到站短,看了眼名单。。。。。
在这里插入图片描述
竟然榜上有名,真是意外惊喜啊。

感谢一下 csdn 的严格啊,居然还能补录上来,真是要给审核人员加个鸡腿了。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】Java实现双向链表

目录 1. 接口的实现 2. 动手实现双链表 2.1 重写SeqList接口方法 2.2 在当前链表尾部添加节点&#xff08;尾插&#xff09; 2.3 在当前链表头部添加节点&#xff08;头插&#xff09; 2.4 检验index是否合法 2.5 在 第index位置添加节点&#xff08;任意位置&#xff09; 2.6 …

【精品】华为认证数通HCIA+HCIP题库分享(含答案解析)

嗨~大家好久不见&#xff0c;我是薄荷学姐&#xff0c;随着华为业务也全球领域的迅猛发展&#xff0c;越来越多人开始重视华为认证的重要性。今天给大家分享一下去年8月份的题库&#xff0c;基本都是一样&#xff0c;希望可以帮助到大家哈想要通过华为认证&#xff0c;除了进行…

gdb调试工具和makemakefile工具

gdb调试工具和make/makefile工具 文章目录gdb调试工具和make/makefile工具一、gdb调试工具1.debug/release2.使用二、make/makefile1.什么是make/makefile2.编写一、gdb调试工具 1.debug/release 程序有两种默认的发布方式debug和release。release是无法进行调试的。Linux中g…

Bing+ChatGPT 对传统搜索引擎的降维打击

早些时候申请了新版 Bing 的内测资格&#xff0c;终于收到了通过的邮件。 一天的体验之后&#xff0c;我的感受是&#xff1a;当新版 Bing 具备了 ChatGPT 的聊天能力之后&#xff0c;它的能力不论是对传统搜索引擎&#xff0c;还是 ChatGPT 自身&#xff0c;都将是降维打击。 …

菜鸟刷题Day3

⭐作者&#xff1a;别动我的饭 ⭐专栏&#xff1a;菜鸟刷题 ⭐标语&#xff1a;悟已往之不谏&#xff0c;知来者之可追 一.字符串压缩&#xff1a;面试题 01.06. 字符串压缩 - 力扣&#xff08;LeetCode&#xff09; 描述 字符串压缩。利用字符重复出现的次数&#xff0c;编…

Python程序员看见一个好看的手机壁纸网站,开撸!

人生苦短&#xff0c;我用python 最近好像没什么大事&#xff0c; .那就采集一下小——姐——姐————看下吧~ python 安装包资料:点击此处跳转文末名片获取 最近有同学的爬虫代码出了bug&#xff0c;给问我怎么改 于是就发现了这个好看的手机壁纸网站。 这个图片应该是违规…

【Unity工具,简单学习】PUN 2,多人在线游戏开发,初步使用

【Unity工具&#xff0c;简单学习】PUN 2&#xff0c;多人在线网络工具前言简单介绍安装简单使用一些 nomenclature 部分连接到 Server设置简单的大厅UI游戏场景搭建关卡加载事后前言 链接 简单介绍 PUN 可以让你简单地开发多人游戏&#xff0c;在全球范围推出 让开发者不用…

【Java学习笔记】38.Java 发送邮件

Java 发送邮件 使用Java应用程序发送 E-mail 十分简单&#xff0c;但是首先你应该在你的机器上安装 JavaMail API 和Java Activation Framework (JAF) 。 您可以从 Java 网站下载最新版本的 JavaMail&#xff0c;打开网页右侧有个 Downloads 链接&#xff0c;点击它下载。 您…

MySQL注入秘籍【上篇】

MySQL注入秘籍【上篇】1.数据库敏感信息常用语句2.联合(UNION)查询注入3.报错注入原理常见报错注入函数1.数据库敏感信息常用语句 获取数据库版本信息 select version(); select innodb_version;获取当前用户 select user();获取当前数据库 select database()&#xff1b;数…

高数重点总结

高数 公式不要去死记 配合训练题在训练中记忆 完成一下这些题目 高中函数图像回忆 与其记忆各种公式不如去思考他们的本质 这和调用c动态库可不一样 考试的时候你相当于在使用汇编答题 1 定义域&#xff08;x&#xff09; 性质 1/x(x!0)√x(x>0 || x0)log a x (x>…

血氧仪是如何得出血氧饱和度值的?

目录 一、血氧饱和度概念 二、血氧饱和度监测意义 三、血氧饱和度的监测方式 四、容积脉搏波计算血氧饱和度原理 五、容积脉搏波波形的测量电路方案 1&#xff09;光源和光电探测器的集成测量模块&#xff1a;SFH7050—反射式 2&#xff09;模拟前端 六、市面上血氧仪类型…

Spring 源码解析 - Bean创建过程 以及 解决循环依赖

一、Spring Bean创建过程以及循环依赖 上篇文章对 Spring Bean资源的加载注册过程进行了源码梳理和解析&#xff0c;我们可以得到结论&#xff0c;资源文件中的 bean 定义信息&#xff0c;被组装成了 BeanDefinition 存放进了 beanDefinitionMap 容器中&#xff0c;那 Bean 是…

图形视图框架QGraphicsScene(场景,概念)

QGraphicsScene 该类充当 QGraphicsItems 的容器。它与 QGraphicsView 一起使用&#xff0c;用于在 2D 表面上可视化图形项目&#xff0c;例如线条、矩形、文本甚至自定义项目。 QGraphicsScene具有的功能&#xff1a; 提供用管理大量数据项的高速接口传播事件到每一个图形项…

艹,终于在8226上把灯点亮了

接上次点文章ESP8266还可以这样玩这次&#xff0c;我终于学会了在ESP8266上面点亮LED灯了现在一个单片机的价格是几块&#xff0c;加上一个晶振&#xff0c;再来一个快递费&#xff0c;十几块钱还是需要的。所以能用这个ESP8266来当单片机玩&#xff0c;还是比较不错的可以在ub…

【设计模式】创建型设计模式

文章目录1. 基础①如何学习设计模式② 类模型③ 类关系2. 设计原则3. 模板方法① 定义②背景③ 要点④ 本质⑤ 结构图⑥ 样例代码4. 观察者模式① 定义②背景③ 要点④ 本质⑤ 结构图⑥ 样例代码5. 策略模式① 定义②背景③ 要点④ 本质⑤ 结构图⑥ 样例代码1. 基础 ①如何学习…

三维电子沙盘数字沙盘开发教程第7课

三维电子沙盘数字沙盘大数据人工智能开发教程第7课设置system.ini 如下内容Server122.112.229.220userGisTestPasswordchinamtouch.com该数据库中只提供 成都市火车南站附近的数据请注意&#xff0c;104.0648,30.61658利用三方工具&#xff0c;如幻影粒子&#xff1a;或者flash…

python例程:《彩图版飞机大战》程序

目录开发环境要求运行方法《彩图版飞机大战》程序使用说明源码示例源码及说明文档下载路径开发环境要求 本系统的软件开发及运行环境具体如下。 操作系统&#xff1a;Windows 7、Windows 10。 Python版本&#xff1a;Python 3.7.1。 开发工具&#xff1a;PyCharm 2018。…

软件测试拿了几个20K offer,分享一波面经

1、你的测试职业发展是什么? 测试经验越多&#xff0c;测试能力越高。所以我的职业发展是需要时间积累的&#xff0c;一步步向着高级测试工程师奔去。而且我也有初步的职业规划&#xff0c;前3年积累测试经验&#xff0c;按如何做好测试工程师的要点去要求自己&#xff0c;不断…

算法基础---基础算法

文章目录 快速排序归并排序二分 整数二分浮点数二分高精度 高精度加法高精度减法高精度乘法高精度除法前缀和 一维前缀和二维前缀和差分 一维差分二维差分双指针位运算离散化区间合并一、快速排序 思想&#xff1a;1.首先确定一个分界点&#xff08;随机取任意一点为…

【云原生】k8s集群命令行工具kubectl基础操作命令实践详解

kubectl基础操作命令详解一、准备工作1.1、Replication Controller1.2、Deployment1.3、DaemonSet1.4、查看创建的svc和pod1.5、kubectl 命令自动补全设置二、kubectl语法三、基础操作命令3.1、api-resources3.2、api-versions3.3、create3.4、expose3.5、run3.6、set3.6.1、en…