好久没写题解了,没办法,C站的题目更新的速度太慢了,重复考过去的老题已经不能再进步了。52期还混了个名次,总要写篇文章完成一下任务。而53期就惨了去了,三道选择题全蒙错了。

反正我个人觉得在现在C站的OJ环境里考选择题,真是出题人脑子被踢了。真要想拿满分太容易了:临时翻书这种笨方法就不提了,开赛后十分钟内出现的那么多0分选手还说明不了问题么?考完就能下载到正确答案,然后换个账户再进不就行了?对,我就是说给出题人听的,人家不是号称每期都复盘么?一个人复盘确实也有可能想不到这么多。:D

当然,你也可以鄙视我,就当我吃不到葡萄说葡萄酸好了。:D


闲言少叙,说回编程题。毕竟这种题才更适合问哥这种没学过计算机专业的人。(本来历史就差,计算机历史就更别提了。)

52期的4道题目还是都考过:

投篮:27期考过,最长递增子数组。

买苹果:30期考过,纯模拟,题解在此。当然背包也能做(有点杀鸡用牛刀的感觉)。

打家劫舍:29期考过,题解在此。动态规划入门题,或者说递推题(类似斐波那契)。

天然气订单:30期、48期考过两回,题解在此,并查集。应该还有别的解法,不过问哥太懒,没空去试了。

这里面只有投篮没写过题解,但实在是太简单了:最长递增子数组,从头到尾遍历一遍答案就出来了。

题目描述

小明投篮,罚球线投球可得一分,在三分线内投篮得分可以得到2分,在三分线以外的地方投篮得分可以得到3分,连续投进得分累计,一旦有一个球没投进则得分清零,重新计算。现给出所有得分记录(清零不计入得分),请你计算一下小明最多连续投进多少个球?

输入描述:第一行输入一个正整数n,表示得分记录中记录的数目; 第二行输入n个正整数,表示得分记录(清零不计入得分)。

输出描述:输出一个整数,表示小明最多连续投进多少个球。

输入样例:

9
1 3 5 7 10 3 2 3 1

输出样例:

5

然而赛后发现,还是有童鞋没有拿到满分。猜测可能是由于读题时错误地理解“得分清零”,认为每次都是从0开始计算。但实际上,从给的示例中就可以看出来,当球没有投进时,得分虽然清零了,但给出的数组里并没有记0,而是从下一个投进的球开始计分。也就是说,即使有连续几个球都投不进,也是不会出现在这个计分数组里的。

这样一来,其实反而更简单了,因为不用去判断是否当前这个投球得分了。思路很简单:维护两个变量,一个是当前子数组的递增长度 temp,一个是最长的子数组长度,也就是答案 result。从头到尾遍历数组,如果当前数字(得分)比上一个数字大,则必然连续得分,temp 加一。反之,如果比上个数字小或相等,则必然这中间投篮失败,开始重新计分了,于是更新 result,再将 temp 重置为 1 (因为当前成功的投球也算一次)。循环结束时,还要记得再更新一次 result,因为有可能一直到最后都是递增的。

参考代码如下:

def solution(self, n, arr):temp = result = 1for i in range(1, n):if arr[i] > arr[i-1]:temp += 1else:result = max(temp, result)temp = 1return max(result, temp)

52期没什么可说的了,咱顺道说说53期。由于53期问哥选择题全错,砍掉30分,自然排不上名次了(而且不再是积分榜榜首了,终于治好了每期都参加的强迫症,哈哈),所以不会单独再写题解或文章。但是53期的两道编程题都是新题,虽然都是简单题。尤其是第2题等差数列,挺有意思的,有点脑筋急转弯的赶脚。问哥在此提供个思路,抛砖引玉,大家可以一起讨论。

题目描述

给定一已排序的正整数组成的数组,求需要在中间至少插入多少个数才能将其补全成为一等差数列。“在中间插入”的意思是:不能在第一个数之前,或最后一个数之后插入数。

输入描述:仅有一行输入,即已排序的正整数数组

输出描述:若在原数组中间至少插入m个数可变成等差数列(m>=0),输出m。如果原数组无法变成等差数列,则输出“NaN”。

输入样例:

3 7 19

输出样例:

2

这题乍看起来似乎有点不好下手,其实也非常简单。由等差数列的基本特性:相邻两个数字的差都相等(记为公差 d),可以轻松推导出:等差数列中任意两个数字的差都是这个公差 d 的倍数。 于是就可以得出结论:如果给出的数列可以组成等差数列(题目也是要求要尽可能组成等差数列)的话,其中已知的相邻数字的差的最大公约数 gcd,就是能构成等差数列的最大公差。

这里面有个特例,就是如果计算下来最大公约数是 0 的话,(0没有公约数,所以不能通过求最大公约数来得到 0,但是只要相邻数字的差是 0,就可以认为该数列最大公差是 0 了),如果首尾数字不相等的话,必然构成不了等差数列,答案是 NaN。而如果首尾数字相等,也不需要再添加任何数字了,因为这就是个由相同数字构成的“等差数列”,答案是 0。

得到最大公差后,要计算少了多少数字,就异常简单了:首尾相减,除去公差再加一,就得到这个数列的数字个数,减去给出数列的长度就是答案。

参考代码如下:

arr = sorted(map(int, input().split())) # 不确定给出的数列是否已经排好序,保险起见,先排序d = arr[1] - arr[0]
if d > 0:from math import gcdfor i in range(2, len(arr)):q = arr[i] - arr[i-1]if q == 0:d = 0breakd = gcd(q, d)if d == 0:if arr[0] == arr[-1]: print(0)else: print("NaN")
else: print((arr[-1]-arr[0])//d - len(arr) + 1)

当然,如果只给出了一个数字,答案是0,也算特例,但这里就没有考到了。

CSDN周赛52期及53期浅析相关推荐

  1. < CSDN周赛解析:第 27 期 >

    CSDN周赛解析:第 27 期

  2. CSDN周赛第30期题目解析(天然气定单、小艺读书、买苹果、圆桌)

    CSDN周赛第30期,我应试成绩"0"分.试着对天然气定单.小艺读书.买苹果

  3. CSDN 周赛37期题解

    CSDN 周赛37期题解 1.题目名称:幼稚班作业 2.题目名称:异或和 3.题目名称:大整数替换数位 4.题目名称:莫名其妙的键盘 卡个bug 小结 1.题目名称:幼稚班作业 幼稚园终于又有新的作业 ...

  4. CSDN周赛56期 - 八阿哥依旧

    之前54期被判作弊,申述无果,反被客服拉黑(水平不够,脾气够够的),让我彻底死心,从此粉转路.各种平台也不止C站一家,确实没有必要一棵树上吊shi.各位如果真心想通过竞赛提高自己的话,实在没必要来C站 ...

  5. 《痞子衡嵌入式半月刊》 第 53 期

    Python微信订餐小程序课程视频 https://blog.csdn.net/m0_56069948/article/details/122285951 Python实战量化交易理财系统 https ...

  6. CSDN粉丝解答:六月份第二期精选——简单bug处理、资料索取、编程系统设计等

    CSDN粉丝解答:六月份第二期精选--互联网笔试编程解决.简单bug处理.资料索取.编程系统设计等 导读:因博主后台留言太多,各种奇葩问题都有,博主只能随机挑选几篇对粉丝的解答,放出来与大家分享哈,哈 ...

  7. CSDN粉丝解答:六月份第一期精选——互联网笔试编程解决、简单bug处理、编程系统设计等

    CSDN粉丝解答:六月份第一期精选--互联网笔试编程解决.简单bug处理.编程系统设计等 导读:因博主后台留言太多,各种奇葩问题都有,博主只能随机挑选几篇对粉丝的解答,放出来与大家分享哈,哈哈-- 博 ...

  8. 《HelloGitHub》第 53 期

    兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. 这是一个面向编程新手.热爱编程.对开源社区感兴趣 人群的月刊,月刊的内容包括:各种编 ...

  9. Java精品项目源码第53期流浪动物管理系统

    Java精品项目源码第53期流浪动物管理系统 大家好,小辰今天给大家介绍一个流浪动物管理系统,演示视频公众号(小辰哥的java)对号查询观看即可 文章目录 Java精品项目源码第53期流浪动物管理系统 ...

最新文章

  1. 据说中台凉了?唔,真香
  2. Kotlin威胁、Python逆袭,2018年程序员需要升级哪些技能?(附报告下载)
  3. 批量Excel数据导入Oracle数据库
  4. Java中被搁置的“goto”保留字
  5. xss权限维持(小技巧)
  6. 为什么使用Binder而不是其他IPC机制
  7. 如何真正提高ASP.NET网站的性能
  8. 学妹问我Java枚举类与注解,我直接用这个搞定她!
  9. 数据透视表和数据交叉表_数据透视表的数据提取
  10. 无符号哥伦布指数编码
  11. fedora10完全配置文档连接网址
  12. iPhone 13系列又有新配色:猛男必看!
  13. php将汉字转换为gb2312编码,php实现utf-8和GB2312编码相互转换
  14. 第15章 音乐可视化(《Python趣味创意编程》教学视频)
  15. 供水为民振兴乡村 国稻种芯-慈利县:抗旱保收盛德村在行动
  16. 查资料的一些工具网站
  17. python开发跟淘宝有关联微_为什么微商和淘宝卖家不得不做公众号和小程序?
  18. 电脑如何拦截弹窗广告
  19. js实现复制文本及其排版格式
  20. 混合动作空间(Dis_Conti_Hybrid)

热门文章

  1. 空间相册显示服务器错误,空间相册服务器繁忙
  2. 【T6】打印总账的时候提示:打印机缺纸(错误号:1001)
  3. 软考-高项-论文-信息系统项目的人力资源管理
  4. revit模型怎么在手机上看_e建筑手机版下载-e建筑(轻松查看CAD图纸和BIM模型)1.2.4 官方苹果版-东坡下载...
  5. Redisson(2-3)分布式锁实现对比 VS Java的ReentrantLock的FairLock
  6. iPhone设备零日漏洞,5亿用户面临攻击
  7. ImageMagick被爆存在零日漏洞 或导致重要信息被窃取
  8. HDU 5964 平行四边形/Pland 【平面几何】
  9. CASS11.0亮点介绍(超越自我,再续辉煌),AutoCAD2020平台界面更加高雅了,或许您应该来体验一下新平台的高雅黑
  10. 印度软件与信息服务业发展经验及启示