2023牛客寒假算法基础集训营3 赛时思路+正解

news2024/9/30 1:40:23

这场数学和思维偏多,特别是数学,五个小时过于充实了,而且更加考验你的心态。
这场不乏码量大的毒瘤题,也不乏人类智慧妙妙题。

A 不断减损的时间
题意 给定一个数组 a a a,我们可以执行任意次操作,该操作定义为选择一个偶数并除以2,问数组和最小为多少, − 1 e 9 < = a i < = 1 e 9 , n < = 2 e 5 -1e9 <= a_i <= 1e9 , n <= 2e5 1e9<=ai<=1e9,n<=2e5
思路 贪心,负数考虑不对他进行改变,因为改变就会变大,正数是能除以2就除以2 。
代码

B 勉强拼凑的记忆
题意 小红想用恰好 n n n块木块凑成正方形,木块是为长不超过 ( n + 1 ) / 2 (n + 1) / 2 (n+1)/2,宽为1的木块,问你能够拼出的正方形最大时多大, n < = 1 e 9 n <= 1e9 n<=1e9
思路 考虑我们先凑出长为 ( n + 1 ) / 2 (n + 1)/2 (n+1)/2的正方形,用去了 ( n + 1 ) / 2 (n + 1)/2 (n+1)/2的木块,然后我们考虑向右向下延伸,我们可以发现可以表示成下图
在这里插入图片描述
如果我们想要 k k k每次增加1,就要花费三个木块,所以答案为 ( n + 1 ) / 2 + n / 2 / 3 (n + 1)/2 + n / 2 / 3 (n+1)/2+n/2/3
代码

C 忽远忽近的距离
题意 这是一道构造题 ,要求构造一个数组 a a a,对于所有的 a i a_i ai满足 2 < = ∣ a i − i ∣ < = 3 2 <= |a_i - i| <= 3 2<=aii<=3 , n < = 2 e 5 n <= 2e5 n<=2e5
思路 考虑模数构造,用了一个比较麻烦的思路,我们观察样例,发现长度为4、5、6时有合法解,我们可以考虑对模数分类讨论,当 n n n%4 为 0 时,我们可以按长度为4的方式对于所有的相邻4个块类比构造,当 n n n%4 为 1时,我们可以向前抽一个长度为4的区间,然后我们要构造长度为5的区间,当 n n n%4 为 2时,我们类似地向前借一个区间构造长度为6的区间,当 n n n%4 为 3时,这个时候不能用长度为7的区间,长度为7是无解情况,我们用长度为11的区间构造,剩下的就是每四个区间按上述方式构造,然后不同长度的区间的合法情况可以通过写暴力获得,剩下的就是代码实现问题。
代码

D 宿命之间的对决
题意 小红和小紫正在玩游戏, 给你一个数字 n n n, 小红小紫轮流操作,每轮可以选择 n n n的因子,并且让 n n n减去这个因子,谁先在当前轮把 n n n减到0就输 , n < = 1 e 18 n <= 1e18 n<=1e18
sample

input
2
output
kou

解释:小红先手取,只能取1(若取2,则小红直接失败),将 n n n变成1。此时小紫只能取1,所以小红获胜。

思路 当时看完题也是脑子晕乎乎的,然后想到有没有可能双方一个一个取的情况,于是尝试对 n n n判断奇偶性,即判断 n n n模2的模数,如果当前自己先手,模数为0,这是先手必胜态,因为模数为零一定是大于等于2的偶数(若要是为0游戏结束) ,所以一定能先手必胜。模数为1是否是先手必败态呢?答案是是的,若我们为先手必败态,我们考虑想办法让对面对先手必败,即当前能够拿出偶数因子(奇数减去偶数还是偶数), 考虑是否有这个情况,如果因子为偶数,一定不可能有对应的数与其相乘等于奇数,所以该情况不成立,因此先手必败态每次操作后转移给对方的一定是先手必胜态。因此该题得证,判断 n n n的奇偶性即可。
代码

E 公平守望的灯塔
题意 给你两个点 A , B A , B A,B问找一顶点 C C C,并且能够能以 A B AB AB为斜边构成等腰直角三角形,给定 A , B A,B A,B的坐标为整数,所求的 C C C的坐标也要求为整数,若不合法输出 N o A n s w e r ! No Answer! NoAnswer! 。坐标系的范围为 [ − 1 e 9 , 1 e 9 ] [-1e9 , 1e9] [1e9,1e9]
思路 求 A B AB AB的中点E,将 A E AE AE旋转90度即可,手动调试可以发现无解情况为, d x 为 a b s ( X a , X b ) , d y 为 a b s ( Y a , Y b ) dx 为 abs(X_a , X_b) , dy 为 abs(Y_a , Y_b) dxabs(Xa,Xb),dyabs(Ya,Yb) , d x dx dx d y dy dy的奇偶性不同。
代码

F 迎接终结的寂灭
题意 输出42
代码

G 严肃古板的秩序
题意 给你一个运算表达式,保证是一个合法的运算式子。即
在这里插入图片描述
运算符号可填’+’ , ‘-’ , ‘#’,其中’#‘的运算a # b表示为 a a 模 b a ^ a 模 b aab
思路 发现’?‘的个数只有十二个,考虑跑3 12的暴力即可,需要注意的是可能会报long long,在’#'运算时可以采用 i n t 128 int128 int128 , 提前取模或者龟速乘的方式避免爆long long。
代码

H 穿越万年的轮回
题意
在这里插入图片描述
思路
我们可以发现子串为 " r e d " "red" "red"的情况很好统计,两种字符串 r e d 和 e d r red和edr rededr r e d red red只会出现在red和两个edr之间,无其他情况。
接下来对三种操作分类讨论。
第一种操作,加上字符串 r e d red red后,答案加1
第二种操作,加上字符串 e d r edr edr后,我们需要考虑前一个位置是哪种字符串,如果前一个位置是 e d r edr edr字符串,则答案加1,否则没有贡献。
第三种操作,我们需要考虑空串的情况,空串则没有贡献,然后考虑重复10次,对答案的影响是乘10的影响,然后我们发现有一种特例是头部尾部都是”edr"字符串时,会对答案多贡献9个 r e d red red
然后期望考虑维护概率,然后 1 − n 1-n 1n的顺序去做,一定要一直维护 p i ∗ 操作次数 pi * 操作次数 pi操作次数的形式即可。如果有概率论基础的人可以在一定时间内写出来。
代码+思维整体难度偏难 。
代码

I 灵魂碎片的收集
题意
在这里插入图片描述
思路
本场最有意思的一道妙妙题,这题考察了一个非常偏门但是有意思的一个结论,当时看到这题我就从质因子分解入手,发现不是很可做,然后自己打了一个表,观察一下奇数的合法解有哪些,观察过程中发现一些数很有意思,比如说 11 对应 21 , 21 对应 51 ,然后拆一下质因子发现他们的和为 n − 1 n-1 n1且有两个,然后猜想是不是所有的偶数都能分解为质数,然后搜了一下哥德巴赫猜想,然后奇数情况就做完了。
现在开始讨论偶数情况,题目保证 x − 1 x-1 x1 x − 3 x-3 x3至少有一个为质数,一直在思考这两个条件的作用, x − 3 x-3 x3的情况非常容易想到可以变成 1 + 2 + ( x − 3 ) 1 + 2 + (x - 3) 1+2+(x3)的形式,对应的数就是 2 ∗ ( x − 3 ) 2 * (x - 3) 2(x3),然后在思考 ( x − 1 ) (x - 1) (x1)的情况,一直没有想到解法,然后我从打表的数据中找一些满足只有 ( x − 1 ) (x - 1) (x1)为质数的情况 ( 38 − 1369 ) (38 - 1369) (381369) ,然后 1369 1369 1369的质因子分解为 37 ∗ 37 37 * 37 3737,然后就得出来若 ( x − 1 ) (x - 1) (x1)为质数时,答案为 ( x − 1 ) 2 (x - 1) ^ 2 (x1)2。这道题就做完了,需要特判 1 , 3 , 7 1,3, 7 137情况即可。
代码

K 永恒守候的爱恋
题意
在这里插入图片描述
思路
我们有一个结论可以快速求因子数量,我们对其质因子分解,p1a1*p2a2*p3a3形式的因子个数为 ( a 1 + 1 ) ∗ ( a 2 + 1 ) ∗ ( a 3 + 1 ) (a1 + 1) * (a2 + 1) * (a3 + 1) (a1+1)(a2+1)(a3+1)然后我们就可以发现每加一个质因子对答案的影响是,当前质因子的个数为 m m m,对答案的影响为乘上 ( m + 1 ) / m (m + 1) / m (m+1)/m,然后我们发现出现1次对应加上的倍数是 2 , 3 / 2 , 4 / 3 2 , 3 / 2 , 4 / 3 2,3/2,4/3,慢慢变小的,按照贪心的思路,我们应该让倍数增加最大的放在前面,即一层一层的把所有的质数全部加上去,简要的说就是每一步我们扫一遍每个数拿出去一个去加到数组上。
举例如下
我们有4个2,3个3,5个7,4个11。
我们每一层加到数组的顺序为 [ 2 , 3 , 5 , 7 ] , [ 2 , 3 , 5 , 7 ] , [ 2 , 3 , 5 , 7 ] , [ 2 , 5 , 7 ] , [ 5 ] [2,3,5,7] , [2, 3, 5, 7] , [2, 3 ,5, 7] , [2, 5 ,7] , [5] [2,3,5,7],[2,3,5,7],[2,3,5,7],[2,5,7],[5]这样子一定是最优的,然后暴力模拟该过程即可,我们可以考虑按块去模拟这个过程,因为我们发现层数最多 2 e 5 2e5 2e5层,考虑暴力 2 e 5 2e5 2e5去做操作, 我们用差分维护每层有多少个数,然后每层一个一个加上数的过程本质上可以看成一个等比数列,维护长度和首项以及数列的上一项的值便可以算出答案。
代码

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

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

相关文章

Rethinking Performance Gains in Image Dehazing Networks

论文源码&#xff1a;https://download.csdn.net/download/zhouaho2010/87393184 Abstract 图像去雾是低层视觉中的一个活跃话题&#xff0c;随着深度学习的快速发展&#xff0c;许多图像去雾网络被提出。尽管这些网络的工作良好&#xff0c;但提高图像去雾性能的关键机制仍不…

守望者的逃离

题目说明【问题描述】恶魔猎手尤迫安野心勃勃.他背叛了暗夜精灵&#xff0c;率深藏在海底的那加企图叛变&#xff1a;守望者在与尤迪安的交锋中遭遇了围杀.被困在一个荒芜的大岛上。为了杀死守望者&#xff0c;尤迪安开始对这个荒岛施咒&#xff0c;这座岛很快就会沉下去&#…

【java入门系列五】java基础-面向对象**

学习记录&#x1f914;类与对象内存中的布局堆栈成员方法 类内的函数传参机制传进来的是一个数组/对象&#xff0c;类似于py的list调用递归-在栈空间方法递归汉诺塔八皇后方法重载overload可变参数作用域**scope构造器/构造方法&#xff1a;新对象的初始化构造器细节对象创建流…

pytorch 笔记:torch.nn.init

这个模块中的所有函数都是用来初始化神经网络参数的&#xff0c;所以它们都在torch.no_grad()模式下运行&#xff0c;不会被autograd所考虑。 1 计算gain value 1.1 介绍 这个在后面的一些nn.init初始化中会用到 1.2 用法 torch.nn.init.calculate_gain(nonlinearity, para…

【LeetCode】回溯算法总结

回溯法解决的问题 回溯法模板 返回值&#xff1a;一般为void参数&#xff1a;先写逻辑&#xff0c;用到啥参数&#xff0c;再填啥参数终止条件&#xff1a;到达叶子节点&#xff0c;保存当前结果&#xff0c;返回遍历过程&#xff1a;回溯法一般在集合中递归搜索&#xff0c;集…

使用DiskGenius进行硬盘数据迁移

克隆硬盘 - DiskGenius 1.迁移磁盘 选择自己想要迁移的磁盘&#xff0c;点击工具-克隆磁盘 首先选择源硬盘&#xff0c;点击确定 之后选择想要迁移到的硬盘&#xff0c;点击确定 检查一下原硬盘和目标硬盘是否正确&#xff0c;此外还可以对这个空间进行二次调整。最终如果没有…

Android 中关于 FileObserver类监听文件状态的实践

文章目录需求背景走进源码实现示例参考需求背景 当某一个目录的文件发生变化&#xff08;创建、修改、删除、移动&#xff09;时&#xff0c;需要给一个回调事件给其他端调用。 其他场景&#xff1a;阅后即焚等等。 比如在 Android 的 VR 设备中&#xff0c;有一个用于部署的文…

Oracle P6 Professional专业版 22.12 中的热门新功能

目录 并排查看项目 在复制与 WBS 元素的关系时具有更大的灵活性 更轻松地确定要分配的正确基线 复制并粘贴电子表格中的单元格区域 更好地控制导入数据 检查 P6 专业版中提供的时间表报告 在排序对话框中排列字段顺序 创建导入和导出模板的副本 指定完成日期筛选器如何…

光流估计(一) 光流的简介与操作

今天是大年29&#xff0c;明天要贴春联了&#xff01;算是在年前赶出来一篇文章发&#xff08;太长时间没发东西了O。o&#xff09;&#xff0c;也算是自己在光流估计深度学习部分研究的开始~ 明年开学就是研二下学期了&#xff0c;时间过得飞快&#xff0c;毕设、实习、工作等…

MyBatis | 使用插件better-mybatis-generator自动生成dao、pojo

0️⃣简介&#x1f5fc;简介在我们编写MyBatis的项目时&#xff0c;常常需要为数据表编写大量的SQL语句以及dao类。better-mybatis-generator作为一款IDEA插件&#xff0c;可以自动为我们生成所需要的pojo类、dao类&#xff0c;并提供相当多的SQL单表查询操作。利用该插件&…

Python小技巧:富比较方法的妙用,__lt__、__le__、__eq__、__ne__、__gt__、__ge__。。。

前言 这里是Python小技巧的系列文章。这是第二篇&#xff0c;富比较方法的妙用。 在 Python中&#xff0c;富比较方法共6个&#xff0c;如下表所示&#xff1a; 见名知意&#xff0c;富比较主要用于比较。 富比较方法使用释义释义object.__lt__(self, other)x.__lt__(y)x<…

Springboot+mybatis使用PageHelper实现vue前端分页

Springbootmybatis使用PageHelper实现vue前端分页1、未分页前的vue前端效果图2、Springbootmybatis使用PageHelper分页逻辑&#xff1a;&#xff08;1&#xff09;Springboot、mybatis、PageHelper的版本&#xff1a;&#xff08;2&#xff09;yml文件配置pagehelper&#xff1…

带你了解docker是什么----初始篇

docker容器docker简介docker、虚拟环境与虚拟机docker 的核心概念Docker 镜像Docker 仓库Docker容器镜像、容器、仓库&#xff0c;三者之间的联系容器 容器一词的英文是container&#xff0c;其实container还有集装箱的意思&#xff0c;集装箱绝对是商业史上了不起的一项发明&…

11.3 关联容器操作

文章目录关联容器迭代器关键字成员不可修改&#xff0c;值可修改关于泛型算法添加元素向set插入元素向map插入数据insert操作总结检测insert的返回值展开递增语句向multiset和multimap添加元素删除元素map下标操作访问元素类型别名&#xff1a;类型别名说明key_type关键字类型&…

第一个Spring、第一个SpringBoot、Spring-Mybatis整合、SpringBoot-Mybatis整合

目录一、第一个Spring程序二、第一个SpringBoot三、Spring-Mybatis整合四、SpringBoot-Mybatis整合第一个程序一、第一个Spring程序 添加依赖——用以支持spring <dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</a…

线程池的简单介绍以及实现一个线程池

文章目录1、线程池存在的意义2、什么是线程池&#xff1f;3、线程池的使用2、java标准库中的线程池3、认识一下不同的线程池&#xff1a;4、认识一下线程池里的参数&#xff1a;4、实现一个简单的线程池1、线程池存在的意义 线程存在的意义&#xff1a;使用进程来实现并发编程…

鼠标右键没有git bash here(图文详解)

升级Win11后突然发现右键没有git bash here了解决&#xff1a;1. winr键&#xff0c;打开命令窗口,输入regedit打开注册表2. 在注册表中按照路径打开\HKEY_CLASSES_ROOT\Directory\Background\shell\3. 在shell上右键新建项&#xff0c;取名Git Bash Here&#xff0c;再点击Git…

SpringCloudConsul

上篇文章注册中心选出了Consul 和 K8S&#xff0c;现在我需要把他们集成到SpringCloud里&#xff0c;体验一下他们的服务注册发现、动态配置与权限分配难易 问题&#xff0c;以便选出更适合我们的。SpringCloudConsul首先用Docker搭建出Consul集群&#xff0c;这一步忽略了&…

8、Ubuntu22.4Server安装MariaDB10.10初始化密码Navicat远程登录

安装MariaDB10.10 查找源 apt search mariadb 在Ubuntu系统上从MariaDB存储库安装MariaDB10.10时&#xff0c;需要运行以下命令 sudo apt-get install apt-transport-https curl sudo curl -o /etc/apt/trusted.gpg.d/mariadb_release_signing_key.asc https://mariadb.org…

【微服务】Feign远程调用

本系列介绍的是Spring Cloud中涉及的知识点&#xff0c;如有错误欢迎指出~ 一.引子 我们以前基于RestTemplate发起的http请求远程调用服务&#xff1a; 存在下面的问题&#xff1a; 代码可读性差&#xff0c;编程体验不统一 参数复杂URL难以维护&#xff0c;字符串拼接硬编码…