CSDN 周赛37期题解

  • 1、题目名称:幼稚班作业
  • 2、题目名称:异或和
  • 3、题目名称:大整数替换数位
  • 4、题目名称:莫名其妙的键盘
  • 卡个bug
  • 小结

1、题目名称:幼稚班作业

幼稚园终于又有新的作业了。 老师安排同学用发给同学的4根木棒拼接成一个三角形。 当然按照正常的逻辑,如果不能拼
接成三角形。 必然要折断某个木棍来拼接三角形。 可是懒惰的小艺当然不会费力了! 如果拼接不成三角形,小艺就会把
它拼接成类似边长 1 1 2的伪三角形(两边之和等于第3边)。 如果伪三角形都拼接不成那就不交作业!

这个题目其实还是有点误导性的,老顾第一次碰到这个题目,是在 csdn 每日一练中碰到的,当时就算的蒙蒙的,最后是看了别人的题解才明白是啥逻辑。

四个木棒,任意三根能组成三角形就算ok,不需要两个最短的当做一根来处理这样的方式,于是解答就很简单了

class Solution:def __init__(self) -> None:passdef solution(self, arr):arr.sort()if arr[0] + arr[1] > arr[2] or arr[1] + arr[2] > arr[3]:return 1elif arr[0] + arr[1] == arr[2] or arr[1] + arr[2] == arr[3]:return 0else:return -1
if __name__ == "__main__":arr = [int(item) for item in input().strip().split()]sol = Solution()result = sol.solution(arr)print(result)

2、题目名称:异或和

小张找到了一个整数 N,他想问问你从 1 到 N 的所有不同整数的异或和是多少, 请你回答他的问题。
此题由CSDN用户a23333a提供。

额。。。。这个题是来送分的,从1一直异或和到N即可,异或运算符是 ^,知道运算符就很简单了。

class Solution:def __init__(self) -> None:passdef solution(self, N):result = 0for i in range(1,N + 1):result ^= ireturn result
if __name__ == "__main__":N = int(input().strip())sol = Solution()result = sol.solution(N)print(result)

3、题目名称:大整数替换数位

以字符串的形式给你一个长度为 M 的整数 N,请你计算出对这个数进行一次操作后模 9 的值为 1 的所有可能的不同操作
方式。
在一次操作中, 我们可以选择 N 的一个数位 N[i],并把它替换成另一个不同的 0 到 9 范围之内的数 B,当且仅当它们选
择的 i 或 B 不同时两种操作方式不同。
此题由CSDN用户a23333a提供

我恨这个叫 a23333a 的家伙,这个题目猛一接触我就犯懵了,这是啥?替换操作还能有多个结果?岁数大了,脑子就没那么灵光了,于是就拿起纸和笔一通乱画,总算明白题主的意思了。比如 10 余1,那么就可以把0换成9,或者91余1,可以把9换成0这样子,并且本身余1的也算。那么计算逻辑也就出来了,根据当前数字得到的余,来计算每个位上的数字有几种替换可能就好。其实做到最后老顾有点晕菜了,具体怎么算的也不确定了,可以看到老顾提交的代码中,余1的情况重复了,在for循环中,余1余0的部分都是无效代码。

另外,就是这个题目输入的内容是什么鬼?M居然是个1元素数组?你长度放数组里做毛线?还有就是N,居然是个大整数?bug区都有小伙伴提意见了啊亲。白瞎了我还专门写了两行代码想转下类型呢。如果是字符串,在没有python这么强大的整型支持的时候,计算一个数取9的余数,可以把各位的数字相加得到的和继续相加,直到变成1位数,就可以了,因为9的倍数有个很特别的点,就是所有位数的和相加就是9的倍数。

class Solution:def __init__(self) -> None:passdef solution(self, M, N):n = NN = str(N)mod = n % 9ans = 0if mod == 1:return (N.count('0') + N.count('9')) * 2for i in range(M[0]):if mod == 1:if N[i] in '09':ans += 1elif mod == 0:ans += 1else:if int(N[i]) == mod - 1:ans += 2else:ans += 1result = ansreturn result
if __name__ == "__main__":M = [int(item) for item in input().strip().split()]N = int(input().strip())sol = Solution()result = sol.solution(M, N)print(result)

4、题目名称:莫名其妙的键盘

有一个神奇的键盘,你可以用它输入a到z的字符,然而每当你输入一个元音字母(a,e,i,o,u其中之一)的时候,已输入的字
符串会发生一次反转! 比方说,当前输入了tw,此时再输入一个o,此时屏幕上的字符串two会反转成owt。 现给出一个
字符串,若用该键盘输入,有多少种方法可以得到?

这个题貌似也在哪里见过,但老顾自己没去做过这个题目,印象中应该是在谁家的题解里瞄过一眼。具体逻辑也记不清了。还是靠着纸上比划出来的。

具体就是在只有1个元音字母前,所有的可能都被锁死了,只需要计算最后只剩1个元音字母时的字符串长度即可(在这个元音字母翻转时)

在这一题,老顾浪费了很长时间,主要是 str=str[1:][::-1] 这里,当时忘记写成 -1,写成1了,最后怎么计算得到的结果都不对。。。郁闷了

class Solution:def __init__(self) -> None:passdef solution(self, str):s = strresult = 0while len(str) > 0 and str[0] in 'aeiou':str = str[1:][::-1] # 这里翻转字符串应该填写 -1,老顾写成1,浪费了大把时间if len(str) == 0:result += 1breakresult = 0while len(str) > 0 and str[0] not in 'aeiou':result += 1str = str[1:]if len(str) == 0:result += 1return result
if __name__ == "__main__":str = input().strip()sol = Solution()result = sol.solution(str)print(result)

卡个bug

在考试期间,他会检测是否有跳出页面,是否有粘贴代码,这算是正常的,但是,我没跳出页面,自己复制自己的代码,一粘贴(Ctrl+V)就算一次粘贴,鼠标右键粘贴没试过,估计也会记录。但是,有另外一种情况,当程序抛出异常后,选择抛出异常的文本,拖动到代码里,这个不算粘贴?

小结

这次的题目不难,脑子灵活点的小朋友提交的都很快,耐心点的小伙伴们也能拿到很好的成绩

这次看了下得分榜,真不知道那些得分连25分都没有的小伙伴们进来是干什么的?凑数的?时间不值钱吗?

本来以为这次因为耽误的时间较多,提交后都50多分钟了,还以为会落榜,结果这次参加考试的大佬好像也不多,除了常见的两位大佬@CodeRecycle,@请叫我问哥,其他都不太常见,居然让老顾又摸到了前十的尾巴。


参加了这么多场,才有3次进入前十,落伍了啊,老顾。不要甘于凑数,奋力向前。

CSDN 周赛37期题解相关推荐

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

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

  2. CSDN竞赛6期题解

    CSDN编程竞赛报名地址:https://edu.csdn.net/contest/detail/16 (请不要删掉此地址) 总结 这次竞赛题目比较简单,没多大必要写题解.更多的还是给出自己的一些体会 ...

  3. CSDN周赛52期及53期浅析

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

  4. CSDN 第 8 期题解(无 T1 代码)

    333 道 DP?真有你的/qiang T1 我记得我上次好像反馈了要把题面搞好一点吧?怎么你们好像不是很在意啊. 你们 CSDN 能不能学一学别人,题意不清. 题目大意 给定一个只包含大小写字母和空 ...

  5. 小议CSDN周赛57期 - 凑数

    本期周赛几乎忘记参加,在最后几分钟的时候上来看了看.那些选择判断一通乱选,填空题也已经被吐槽得差不多了,这里不多说,只说我对第一道编程题的看法(吐槽).因为 C 站的机制是,即使它错了,它也不会承认( ...

  6. CSDN竞赛7期题解

    总结 这次竞赛的题目质量相对之前竞赛来说是有明显进步的,由两道经典面试题加上两道中等难度题目构成.前两道的受众可能是初学算法的同学吧,对于学算法的同学来说,前两道题没有在五分钟内AC都是不合格的.当然 ...

  7. CSDN竞赛—第五期题解与感想

    CSDN竞赛-第五期题解与感想 一.题解 1. 寻因找祖 解题思路 AC代码 题外话 2. 通货膨胀-x国货币 解题思路 AC代码 3. 莫名其妙的键盘 解题思路 参考代码 4. 三而竭 解题思路 A ...

  8. CSDN竞赛—第六期题解与感想

    CSDN编程竞赛报名地址:https://edu.csdn.net/contest/detail/16 CSDN竞赛-第六期题解与感想 前言/背景 参赛经历 解题思路 经验心得 资料分享 第六期题解 ...

  9. CSDN周赛第36期:赢热门实体图书《算法竞赛》和定制周边

    一.报名地址 第36期周赛报名地址,3月12日 9点开考(周日):https://edu.csdn.net/contest/detail/50 第37期周赛也在报名中,3月15日 19点开考(周三): ...

最新文章

  1. LevelDb系列之简介
  2. 今天有了意外收获,原来还可以这样提交数据的
  3. H5与Native交互之JSBridge技术
  4. 网络打印机查找不到_打印机驱动的安装教程
  5. 555定时器,你知道它的功能有多强大吗?
  6. 程序员修神之路--高并发优雅的做限流(有福利)
  7. 深入解读首个万亿级语言模型 Switch Transformer
  8. glide加载gif图不显示动画_用Python绘制会动的柱形竞赛图
  9. headerIP php_PHP正确获取客户端IP地址
  10. matlab巴特沃斯滤波器算法解释,巴特沃斯滤波器原理.doc
  11. 愿你不会像我一样,活成狗一般的生活!
  12. spring boot整合muybatis的错误
  13. ----实现查看历史记录及清除功能的具体过程----
  14. 数图互通高校房产管理模块,公租房管理是怎样对合同、续租,申请审核审批管理的;
  15. 商业插画师走尺印象:只为做生活的设计师
  16. Python爬虫爬取表情包
  17. GitChat · 软件工程 | 一小时教你学会 Maven 项目的构建与管理
  18. 奥的斯电梯服务器自动呼梯,奥的斯外呼电梯控制系统说明
  19. 回顾2019年个人软件支出
  20. UVa 375 内接圆和等腰三角形

热门文章

  1. 空气日历 for mac(日历软件)
  2. mybatis-plus分页插件(PaginationInnerInterceptor)报错的问题
  3. 如何实现百度播放器jsp页面中播放高清视频
  4. Eureka基本使用以及自我保护机制
  5. 预约挂号项目之预约挂号模块
  6. 禾赛科技冲刺美股上市:将成激光雷达第一股,百度、小米等为股东
  7. CSS-微信小程序-部分ios机型按钮border丢失
  8. Python网络爬虫实战:世纪佳缘爬取近6万条小姐姐数据后发现惊天秘密
  9. python模板安装
  10. FreeXDataSet简介