ACWING寒假每日一题python
ACWING寒假每日一题
一、孤独的照片
一个点一个点的来看,比如对于GHGHG中间的G,找到他的左边的G,以及右边的G的位置,l,r分别等于1,答案就要多加上11
但是如果对于 GHHGHHG 中间的G,我们可以看到l,r等于2,那么就一个中间G的对于他的左半边来说,能拍l-1张照片,右半边也是能拍r-1张,之后左右一起看的话能拍lr张。
知道这个就好做了,我们只需要把每个G和H点的坐标存起来,然后遍历一编就行了,不过要注意边界,例如对于第一个G点,他的l是等于他的坐标的,那么我们只需要把G[0]设置为-1,这样计算l的时候就会等于G[1](l = g[i] - g[i-1] -1)
具体代码如下
n = int(input())
s = input()
res = 0
g,h = [-1],[-1] # 第一个点 h[1] - h[1-1]-1 就是h[1]
for i in range(n):if s[i] == 'G':g.append(i) # 记录G的位置else:h.append(i) # H的位置
g.append(n) # 处理右边界, 最后一个点 h[i+1]-h[i]-1
h.append(n)
for i in range(1,len(g)-1):l = g[i] - g[i-1] - 1 r = g[i+1] - g[i] - 1if l >= 2:res += l-1if r >= 2:res += r-1res += r*l
for i in range(1,len(h)-1):l = h[i] - h[i-1] - 1 r = h[i+1] - h[i] - 1if l >= 2:res += l-1if r >= 2:res += r-1res += r*lprint(res)
二、统计次数
对于python来说并不难,我们有count函数,其他语言我就不知道了,O(n)时间复杂度
代码如下
n,k = map(int,input().split())
res = 0
for i in range(1,n+1):i = str(i)k = str(k)res += i.count(k)
print(res)
三、上课睡觉
对于每组数据,我们从大到小遍历堆数,就是总共要合成成几堆,假设为K堆,那么我们需要的操作就是n-k,因为k从大到小,所以我们找到的一定是操作数最少的。
假设分为k堆,首先要判断总数sum % k 是否等于0,如果不等于代表他不能被k等分,就不行
如果可以的话,因为只有相邻的合并,所以我们从小到大遍历石堆,设置一个遍历m m 去 += w[i],w为石堆,然后如果等于 sum // k 就让m归0,继续往下找,如果m>sum//k 那就肯定不行了,然后最后如果m == 0 代表最后合成的一堆也等于 sum // k ,就成功拉。
PS:可能说的有点乱,总的来说就是需要遍历石堆里的,然后从头到尾合并,都合并成sum//k,如果合并着合并着发现大于sum//k了,那就肯定不行了,因为你如果舍弃掉开头那个,就算你这堆可以等于sum//k,但是你开头那个就没办法和别的石子合并了。因为这堆的开头的那个石子的前面要么没石头,要么它的前面已经合并为sum//k了。
#### 代码如下def solve(w,cnt,totle):if totle % cnt != 0: return False# 如果总数不能除尽堆数,证明这个堆数是不可能的k = totle // cntm = 0for i in range(len(w)):m += w[i]if m > k : return Falseif m == k : m = 0return m == 0 # 如果最后面刚好最后一堆的总和也等于平均数,就返回Trueif __name__ == '__main__':t = int(input())for i in range(t):n = int(input())w = [int(x) for x in input().split()]totle = sum(w)for cnt in range(n,0,-1) : # 遍历堆数 就是要多最多的堆if solve(w,cnt,totle) : print(n - cnt) # 例如5堆最后分为3堆,就要操作5-2次break
四、学分绩点
这题也是比较暴力的题,就没什么好说的
代码如下
if __name__ == '__main__':n = int(input())xuefen = [int(x) for x in input().split()]scores = [int(x) for x in input().split()]res = 0for i in range(n):if scores[i] >= 90:res += xuefen[i] * 4.00elif scores[i] >= 85:res += xuefen[i] * 3.7elif scores[i] >= 82:res += xuefen[i] * 3.3elif scores[i] >= 78:res += xuefen[i] * 3.0elif scores[i] >= 75:res += xuefen[i] * 2.7elif scores[i] >= 72:res += xuefen[i] * 2.3elif scores[i] >= 68 :res += xuefen[i] * 2.0elif scores[i] >= 64:res += xuefen[i] * 1.5elif scores[i] >= 60:res += xuefen[i] * 1.0else: res += 0print('{:.2f}'.format(res/sum(xuefen)))
五、奶牛大学
将每头奶牛愿意出的学费给排序一下,然后一个个去遍历,以第一个,第二个…作为学费,找到最大值,用enumerate就会很方便,例如以第三头牛的愿意出的最大价格做学费,sum = 学费 *(n-i) 。如果有重复的不用担心,例如愿意出的最大价格排好序后是 1 3 3 3 … 那么在计算第一个3的时候,就是学费为3的能赚到钱的最大值,后面两个不会覆盖掉第一个3
代码如下
if __name__ == '__main__':n = int(input())s = [int(x) for x in input().split()]s.sort()maxsum = 0finalmoney = 0for i,money in enumerate(s):sum = money * (n-i)if sum>maxsum:maxsum = sumfinalmoney = moneyprint(maxsum,finalmoney)
六、选数异或
直接暴力的话肯定会TLE的,我们先预处理一个数组 maxl ,maxl[i] 代表右边界为i, 能容忍的左边界最大是多少,如果最后 l > maxl[r] ,就 say no 了 ,因为你比我能容忍的最大还大。
那要怎么算这个maxl呢,首先如果第i个数的异或x的值假设为b,maxl[i - 1] 表示前一个位置能容忍的最大值,那么maxl[i] 是不是要等于 max( maxl[i-1] , b的最后一个位置)。
那么我们现在只需要算出前面出现过的数的最后一个位置就行了,再建立一个endpos表示每个数的最后一个位置。在遍历的时候让endpos[arr[i]] = i 就行(arr为原数组)
又因为l和r是从1开始的,所以我们的原始数组arr应该也从坐标1开始,在第一个位置上加个-1就行。
具体代码如下
## a ^ b = x --> a ^ x = b
N = 10**7
if __name__ == '__main__':n,m,x = map(int,input().split())endpos = [-1] * Narr = [-1]+[int(x) for x in input().split()]maxl = [-1] * (n+2)for i in range(1,n+1):# 对于每个位置来说,他能容许的左边的最大值(l 不能比这个再大了,可以在它的左边)是 maxl[i - 1] 或者 它目前这个位置的数异或值的最后一个位置maxl[i] = max(maxl[i-1] , endpos[arr[i]^x]) # arr[i] ^ x 是你这个点想要的那个b arr[i] ^ b = x,endpos[b] 就表示b出现的最后位置endpos[arr[i]] = i # 记录一下每个数字出现的最后位置,每个重复数字都记录的是后面那个数字的下标for i in range(m):l,r = map(int,input().split())if (l != r and maxl[r] >= l):print('yes')else: print('no')
相关文章:

ACWING寒假每日一题python
ACWING寒假每日一题 一、孤独的照片 一个点一个点的来看,比如对于GHGHG中间的G,找到他的左边的G,以及右边的G的位置,l,r分别等于1,答案就要多加上11 但是如果对于 GHHGHHG 中间的G,我们可以看到l,r等于2&a…...

御黑行动来袭--助力三月重保,构筑安全防线!
三月重保在即,重要网站及业务系统“零风险 零事故”是终极目标,作为业界网络安全实战派“老兵”--知道创宇将一如既往,为您提供重保期间“万无一失”的重要网站及业务系统防护。 值此三月重保的重要备战期,知道创宇推出由主力产品…...
JavaScript HTML DOM 元素 (节点)
HTML DOM 是指 HTML 文档对象模型,它是一种用于创建和处理 HTML 页面的标准 API。在 JavaScript 中,HTML DOM 可以被用来操作和修改网页的内容和结构。在本篇文章中,我们将详细探讨 JavaScript HTML DOM 元素 (节点)的作用以及在实际工作中的…...

mybatis-plus ---2
mybatis-plus插件 官网地址 分页插件 MyBatis Plus自带分页插件,只要简单的配置即可实现分页功能 配置并使用自带分页插件 Configuration MapperScan("com.itzhh.mapper")//可以将主类中的注解移到此处 public class MybatisPlusConfig {Beanpublic …...

如何在Qt中设置背景图片,且不覆盖其它控件
正常情况,我们直接通过在样式表里设置背景图片会出现背景图片覆盖其它控件的情况,比如下面操作: 首先右击空白处,点击改变样式表。 然后选择background-image 然后点击铅笔图标 之后我们要先添加前缀,也就是我们…...
PMP考前冲刺2.14 | 2023新征程,一举拿证
承载2023新一年的好运让我们迈向PMP终点一起冲刺!一起拿证!每日5道PMP习题助大家上岸PMP!!!PMP项目管理题目1-2:1.公司了解到一个项目机会,领导让之前做过类似项目的项目经理报告一个粗略的成本…...

feign进行文件上传报错解决方案及有多个入参时的注意事项
一、情景回顾1、简单的文件上传的接口/*** 文件上传MultipartFile格式** param multipartFile 源文件* param filename 自定义文件名称,允许为空,为空时直接从源文件中拿* return*/RequestMapping("/uploadFileForMultipartFile")LogModuleAnn…...
java 枚举类型enum的用法详解
Java Enum原理 public enum Size{ SMALL, MEDIUM, LARGE, EXTRA_LARGE }; 实际上,这个声明定义的类型是一个类,它刚好有四个实例,在此尽量不要构造新对象。 因此,在比较两个枚举类型的值时,永远不需要调用equals方法…...

Java 基础面试题——关键字
目录1.Java 中的关键字是指什么?有哪些关键字?2.instanceof 关键字的作用是什么?3.访问修饰符 public、private、protected、以及不写(default)时的区别?4.Java 中有没有 goto 关键字?5.在 Java 中&#x…...

C++——运算符重载
1、运算符重载的概念 运算符重载,就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。运算符重载的目的是让语法更加简洁运算符重载不能改变本来寓意,不能改变基础类型寓意运算符重载的本质是另一种函数调用…...

前端食堂技术周刊第 70 期:Volar 的新开端、Lighthouse 10、良好的组件设计、React 纪录片、2022 大前端总结
美味值:🌟🌟🌟🌟🌟 口味:黑巧克力 食堂技术周刊仓库地址:https://github.com/Geekhyt/weekly 本期摘要 Volar 的新开端Chrome 110 的新功能Lighthouse 10Nuxt v3.2.0加速 JavaSc…...

react路由详解
在学习react路由之前,我们肯定需要安装路由。大家先运行如下命令安装路由。安装之后随我一起探索react路由。 安装 版本v6 npm i react-router-dom -S 页面准备 创建两个文件夹 pages和 router pages文件夹里面放的是页面 router文件夹里面是进行路由配置 路由…...

mysql数据库完全备份和增量备份与恢复
mysql数据备份: 数据备份方式 物理备份: 冷备:.冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库热备:一般用于保证服务正常不间断运行,用两台机器作为服务机器,一台用于实际数据库操作应用,另外…...
CF1667E Centroid Probabilities
题目描述 对于所有点数为 nnn 的树,如果其满足 对于所有 i∈[2,n]i\in [2,n]i∈[2,n],与 iii 相连的 jjj 中有且只有一个点 jjj 满足 j<ij<ij<i ,那么我们称其为好树 对于 1∼n1\sim n1∼n 每个点求出来有多少好树满足重心为 iii …...

全网详细总结com.alibaba.fastjson.JSONException: syntax error, position at xxx常见错误方式
文章目录1. 复现问题2. 分析问题3. 解决问题4. 该错误的其他解决方法5. 重要补充1. 复现问题 今天在JSONObject.parse(json)这个方法时,却报出如下错误: com.alibaba.fastjson.JSONException: syntax error, position at 0, name usernameat com.aliba…...

快速部署个人导航页:美好的一天从井然有序开始
很多人都习惯使用浏览器自带的收藏夹来管理自己的书签,然而收藏夹存在着一些问题。 经过长时间的累积,一些高频使用的重要网站和偶尔信手收藏的链接混在了一起,收藏夹因为内容过多而显得杂乱无章;收藏夹没有什么美观可言…...
【Python】如何在 Python 中使用“柯里化”编写干净且可重用的代码
对于中级Python开发者来说,了解了Python的基础语法、库、方法,能够实现一些功能之后,进一步追求的就应该是写出优雅的代码了。 这里介绍一个很有趣的概念“柯里化”。 所谓柯里化(Currying)是把接受多个参数的函数变换…...

ROS笔记(4)——发布者Publisher与订阅者Subscribe的编程实现
发布者 以小海龟的话题消息为例,编程实现发布者通过/turtle1/cmd_vel 话题向 turtlesim节点发送消息,流程如图 步骤一 创建功能包(工作空间为~/catkin_ws/src) $ cd ~/catkin_ws/src $ catkin_create_pkg learning_topic roscpp rospy s…...

Linux进程概念(一)
文章目录Linux进程概念(一)1. 冯诺依曼体系结构2. 操作系统(Operator System)2.1 考虑2.2 如何理解操作系统对硬件做管理?2.3 操作系统为什么要对软硬件资源做管理呢?2.4 系统调用和库函数概念2.5 计算机体系结构3. 进程的初步理解…...

Leetcode.1124 表现良好的最长时间段
题目链接 Leetcode.1124 表现良好的最长时间段 Rating : 1908 题目描述 我们认为当员工一天中的工作小时数大于 8 小时的时候,那么这一天就是「劳累的一天」。 所谓「表现良好的时间段」,意味在这段时间内,「劳累的天数」是严格…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...

【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...

C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...