20250808组题总结

A - A

Pak Chanek 有一个包含 nnn 个正整数的数组aaa。由于他正在学习如何计算两个数字的向下取整平均值,他希望在他的数组 aaa 上进行练习。当数组 aaa 至少有两个元素时,Pak Chanek 将执行以下三步操作:

∙\bullet选择两个不同的索引 iiij(1≤i,j≤∣a∣;i≠j)j (1≤i,j≤∣a∣; i≠j)j(1i,j≤∣a;i=j),注意 ∣a∣∣a∣a 表示数组 aaa 的当前大小。

∙\bullet⌊2ai​+aj2⌋⌊\frac{2a_i​ +a_j}{2}⌋22ai+aj∗ 附加到数组的末尾。

∙\bullet从数组中移除元素 aia_iaiaja_jaj并连接数组的剩余部分。

例如,假设 a=[5,4,3,2,1,1]a=[5,4,3,2,1,1]a=[5,4,3,2,1,1] 。如果我们选择 i=1i=1i=1j=5j=5j=5 ,则结果数组将是 a=[4,3,2,1,3]a=[4,3,2,1,3]a=[4,3,2,1,3] 。如果我们选择 i=4i=4i=4j=3j=3j=3 ,则结果数组将是 a=[5,4,1,1,2]a=[5,4,1,1,2]a=[5,4,1,1,2]

在所有操作完成后,数组将只包含一个元素 xxx。如果 Pak Chanek 进行最佳操作,找出 xxx 的最大可能值。


⌊x⌋⌊x⌋x 表示 xxx 的向下取整函数,即小于或等于 xxx 的最大整数。例如,⌊6⌋=6、⌊2.5⌋=2、⌊−3.6⌋=−4⌊6⌋=6、⌊2.5⌋=2、⌊−3.6⌋=−46=62.5=23.6=4⌊π⌋=3⌊π⌋=3π=3


找规律,可以通过打表发现,只要每次把两个最小的元素合并起来,就能使最终的答案最大化

那怎么找到最小的两个值呢?怎么把合并的值放到末尾呢?怎么删除选中的两个值呢?这里我们可以偷个懒,因为要合并n−1n-1n1次,我们就循坏n−1n-1n1次,每次先把aaa数组排一遍升序,我们就锁定了两个最小值

现在是最关键的时刻,虽然题目说每次会把合并之后的结果放在数组的末尾,但下一次循环我们还是会排序,所以先把它放在a[1]a[1]a[1],由于每次操作aaa数组的最后一项都会蹿到前面去,所以我们就先把它放在a[2]a[2]a[2]

这样我们就完美的删除了选中的两个数,并保留了aaa数组的其余项和选中的两个数合并之后的结果。

#include<bits/stdc++.h>//献上代码
using namespace std;
int a[55],t,n; //数据水是我时间复杂度的证明,O(n log n)
int main(){cin>>t;while(t--){cin>>n;for(int i=1;i<=n;i++)cin>>a[i];for(int i=1;i<n;i++){sort(a+1,a+1+n-i+1); //注意,我们在a数组里删除了值a[1]=(a[1]+a[2])/2,a[2]=a[n];}cout<<a[1]<<endl;//最后a数组只剩1个值了,于是输出a[1]}return 0;
} 

B - B

给定一个由互不相同的整数组成的数组aaa。每次操作中,你可以选择:

∙\bullet选取数组的某个非空前缀∗∗,并将其替换为该前缀的最小值;
∙\bullet选取数组的某个非空后缀†\dagger,并将其替换为该后缀的最大值。

注意:你可以选择整个数组aaa作为操作对象。

对于每个元素ai​a_i​ai,判断是否存在一系列操作能将数组aaa转化为aia_iai——即最终数组aaa仅包含该元素aia_iai

请输出一个长度为nnn的二进制字符串,其中第iii个字符为111表示存在这样的操作序列,否则为000


∗∗数组的前缀是指由前kkk个元素组成的子数组(kkk为任意整数)。
†\dagger数组的后缀是指由后kkk个元素组成的子数组(kkk为任意整数)。


首先我们可以证明如果一个数是某个前缀最小值,或是某个后缀最大值,就一定可以保留下来。

因为如果这个数是某个前缀的最小值,就可以先进行一次前缀操作,后面不管是什么数就都能经过几次后缀操作压缩成一个数,最后再进行一次前缀或后缀操作就能保留该数。

例如,a=a=a={5,6,3,1,75,6,3,1,75,6,3,1,7},此时我们想要判断a3a_3a3能不能保留下来,就先判断它是不是某个前缀的最小值,结果是的,就先进行一次前缀操作,a=a=a={3,1,73,1,73,1,7},接着进行一次后缀操作,a=a=a={3,73,73,7},最后再进行一次前缀操作,a3a_3a3就保留了下来。

注意,最后一次操作要根据情况判断是进行前缀操作还是进行后缀操作。

C - C

Nene 发明了一种基于递增整数序列 a1​,a2​,…,aka_1​,a_2​ ,…,a_ka1,a2,,ak 的新游戏。

在这个游戏中,最初有 nnn 名玩家排成一行。在每一轮游戏中,发生以下情况:

Nene 找到第 a1​、a2​、…a_1​ 、a _2​ 、…a1a2aka_kak名玩家,他们会同时被踢出游戏。如果第 iii 名玩家应该被踢出,但排成一行的玩家少于 iii 名,则跳过该玩家。

一旦在某一轮中没有人被踢出游戏,所有仍在游戏中的玩家将被宣布为胜利者。

例如,考虑有a=[3,5]a=[3,5]a=[3,5]n=5n=5n=5 名玩家的游戏。假设玩家按顺序被命名为玩家 A、玩家 B、
…、玩家 E。

那么,在第一轮之前,玩家排成 ABCDE。Nene 找到第 333 和第 555 名玩家。这些是玩家 C 和 E。他们在第一轮被踢出。现在玩家排成 ABD。

Nene 找到第 333 和第 555 名玩家。第 333 名玩家是玩家 D,而排成一行中没有第 555 名玩家。因此,只有玩家 D 在第二轮被踢出。

在第三轮中,没有人被踢出游戏,因此游戏在这一轮结束。玩家 A 和 B 被宣布为胜利者。

Nene 尚未决定最初有多少人会加入游戏。Nene 给了你 qqq 个整数 n1​,n2​,…,nqn_1​ ,n_2​ ,…,n_qn1,n2,,nq​ ,你应该独立回答以下问题:

如果游戏最初有 ni​n_i​ni 名玩家,最终会有多少人被宣布为胜利者?


先找出nnn数组的最小值,然后对于每次询问只要输出(ai)+1(a_i)+1(ai)+1%mn+1mn+1mn+1。怎么证明?
作者画技粗糙简略,请勿吐槽
如图,在333下标之后包括333下标的元素都被删除了,最后只剩下两个元素,如果还是不信邪的话,自己造几个样例试试吧!

D - D

给定两个长度为n的排列aaabbb。排列是指包含nnn个从111nnn不重复元素的数组。例如数组[2,1,3][2,1,3][2,1,3]是排列,但[0,1][0,1][0,1][1,3,1][1,3,1][1,3,1]不是。

你可以(不限次数)选择两个下标iiijjj,然后同时交换aia_iaiaja_jaj​ 以及bib_ibibjb_jbj

你需要最小化两个排列中的逆序对总数。排列p中的逆序对是指满足i<ji<ji<jpi>pjp_i>p_jpi>pj的下标对(i,j)(i,j)(i,j)。例如当p=[3,1,4,2,5]p=[3,1,4,2,5]p=[3,1,4,2,5]时,共有333个逆序对(具体为(1,2)、(1,4)(1,2)、(1,4)(1,2)(1,4)(3,4)(3,4)(3,4))。


首先用一个结构体接入a,b数组,然后按a数组排序,最后输出就行了。

#include<bits/stdc++.h>
using namespace std;
struct tt{int a,b;
}c[200005];
bool cmp(tt x,tt y){return x.a<y.a;
}
int main(){int t;cin>>t;while(t--){int n;cin>>n;for(int i=1;i<=n;i++)cin>>c[i].a;for(int i=1;i<=n;i++)cin>>c[i].b;sort(c+1,c+1+n,cmp);for(int i=1;i<=n;i++)cout<<c[i].a<<" ";cout<<endl;for(int i=1;i<=n;i++)cout<<c[i].b<<" ";cout<<endl;		}return 0;
}

E - E

你有一个数组 a1,a2,…,ana_1,a_2,…,a_na1,a2,,an。回答 q 个以下形式的查询:

如果我们将数组的 al,al+1,…,ara_l,a_{l+1},…,a_ral,al+1,,ar​ 范围内的所有元素改为kkk,整个数组的和会是奇数吗?

注意,查询是独立的,不会影响后续的查询。


前缀和数组来存储区间总和。注意1,因为我们只需要判断总和是不是奇数,所以我们可以%2。注意2,把一个区间的值都改成k等于把一个区间的值都加上k,当然,仅在本题生效。
为什么呢?当然是通过打表找规律发现的,想知道为什么的自己试几组数据吧!

#include<bits/stdc++.h>
using namespace std;
long long a[200005],s[200005];
int main(){int t;cin>>t;while(t--){memset(s,0,sizeof s);memset(a,0,sizeof a);long long n,q,cs=0;//cs数组总和cin>>n>>q;for(int i=1;i<=n;i++)cin>>a[i],cs+=a[i]%2,s[i]=a[i]%2+s[i-1];while(q--){long long l,r,k,css=cs;cin>>l>>r>>k;css+=(r-l+1)*k%2-(s[r]-s[l-1])%2;if(css%2==1){cout<<"YES"<<endl;}else{cout<<"NO"<<endl;}}}return 0;
} 

F - F

体面过于复杂,链接F - F


这题很显然每次要合并最长的一条路径才是最优操作,然而每次进行这种操作都会删除2个叶子节点,所以先找出有多少个叶子节点,答案就是⌈叶子节点数⌉2\frac{\left \lceil 叶子节点数 \right \rceil}{2}2叶子节点数

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

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

相关文章

【Python 语法糖小火锅 · 第 5 涮 · 完结】

一、糖味一句话 Python 3.10 的 match-case 把「类型 值 嵌套」一次性拆开&#xff0c; 可读性 10&#xff0c;bug 数 10&#xff0c;if-elif 可以安心退休了。二、1 行示例 3 连发 # ① 值匹配 match status:case 200: msg "ok"case 404: msg "not found&q…

写 SPSS文件系统

写入 SPSS 系统文件&#xff08;.sav、.zsav&#xff09; 以下为相关的 SPSS 命令&#xff08;以大写形式 CAPS 呈现&#xff09; savFileName : str SPSS 数据文件的文件名 以 .sav 结尾的文件使用旧版压缩方案压缩。 以 _uncompressed.sav 结尾的文件不压缩&#xff0c;这在需…

云服务器--阿里云OSS(1)【阿里云OSS简单介绍以及环境准备】

一、阿里云OSS简介 定义&#xff1a;阿里云OSS&#xff08;Object Storage Service&#xff09;是阿里云提供的对象存储服务&#xff0c;支持海量数据的存储和管理。 存储方式&#xff1a;基于“对象存储”&#xff0c;文件以对象形式存储&#xff0c;无需管理文件系统结构。 …

R语言代码加密(1)

1、使用Compiler包library(compiler) cmpfile("1.R")#实现对R脚本的整体加密 compiler::loadcmp("1.Rc")#调用R脚本存在问题是&#xff0c;该方法仅对脚本进行加密。在加载生成的Rc文件后&#xff0c;脚本内具体函数&#xff0c;是可以看到具体内容的。针对…

【面试场景题】通过LinkedHashMap来实现LRU与LFU

文章目录一、LRU与LFU的概念1. LRU&#xff08;Least Recently Used&#xff0c;最近最少使用&#xff09;2. LFU&#xff08;Least Frequently Used&#xff0c;最不经常使用&#xff09;二、LinkedHashMap的特性三、用LinkedHashMap实现LRU实现代码&#xff1a;原理说明&…

第5章 Excel公式与函数应用指南(2):数学函数

5.2 数学函数 Excel作为强大的数据处理工具,其内置的数学函数体系为用户提供了丰富的计算能力。从基础的四则运算到复杂的指数对数计算,从简单的数值舍入到专业的矩阵运算,Excel的数学函数几乎可以满足各类计算需求。 本节将重点为您解析七个常用且实用的数学函数:求和函…

mysql复制连接下的所有表+一次性拷贝到自己的库

1.导出链接下的所有数据mysqldump -h 地址 -u 数据库名 -p --all-databases --single-transaction --master-data2 > all_dbs.sql2.导入自己的库mysql -h 127.0.0.1 -u root -p < all_dbs.sql3.指定导出某些库mysqldump -u root -p --databases db1 db2 db3 > /path/t…

开发手札:UnrealEngine和Unity3d坐标系问题

最近把一套网络模块和一套组件模块从u3d改造到ue4。网络模块通用性很高&#xff0c;毕竟协议都是通用网络协议&#xff0c;改造后没啥问题。但是改造组件模块的时候就遇到了问题。首先&#xff0c;unity3d的坐标系是标准左手坐标系&#xff0c;如下&#xff1a;同时自己的几何算…

QML 鼠标穿透

事件&#xff1a; 有一个输入框(TextField)&#xff0c;需要实现鼠标悬浮时改变边框颜色&#xff0c;鼠标移出后恢复原来边框颜色&#xff1b; 这时如果需要实现此功能&#xff0c;就得使用到MouseArea&#xff0c;鼠标操作区域填充满整个TextField。 然后实现鼠标移入移入出的…

VR 设备 PCB 怎样凭借高频材料达成高速传输

VR 设备的沉浸式体验依赖于高分辨率图像与低延迟交互&#xff0c;这要求设备内部数据传输速率达到 10Gbps 以上&#xff0c;而印制线路板&#xff08;PCB&#xff09;作为信号传输的核心载体&#xff0c;其材料性能直接决定传输效率。高频材料凭借低介电常数&#xff08;Dk&…

Oracle字段操作

1. 新增字段 -- 新增字段 ALTER TABLE MES.WT_SUPPLEMENT_RECORD ADD (PAR_ATTR3 NUMBER DEFAULT NULL);2. 修改字段类型 -- 修改字段类型 ALTER TABLE MES.WT_SUPPLEMENT_RECORD MODIFY (PAR_ATTR3 VARCHAR2(32));3. 删除字段 -- 删除字段 ALTER TABLE MES.WT_SUPPLEMENT_RECO…

【原创】基于 Flask 的简单文件收集器

在单位内网环境中&#xff0c;我经常需要收集 pdf 格式的记录表。于是我基于 ai ide&#xff0c;开发了一个基于 Flask 开发的轻量级文件上传服务项目&#xff0c;部署在单位飞腾芯的银河麒麟系统上&#xff08;当然由于 python 的跨平台&#xff0c;在 windows 和 mac 上也可部…

学习Java的Day28

今天在昨天完成的留言板项目基础上&#xff0c;我进一步开发了一个酒店房型管理系统。该系统采用MVC架构&#xff0c;主要功能是对酒店房型信息进行增删改查操作。数据库设计方面&#xff0c;我创建了hotel_room_type表&#xff0c;包含以下字段&#xff1a;id&#xff1a;主键…

Leetcode——556. 下一个更大元素 III

题目链接&#xff1a;556. 下一个更大元素 III &#xff08;由于图片上传失败&#xff0c;不贴原题目了&#xff0c;有需要可以前往力扣查看&#xff09; 本文给出该题的单调栈做法&#xff0c;同时绕过所有库函数&#xff0c;所有逻辑均自行实现。 本题的思路就是从右向左按…

Idea打包可执行jar,MANIFEST.MF文件没有Main-Class属性:找不到或无法加载主类

背景&#xff1a;IDEA传统方法【Project structure】-->artifact---->build的模式&#xff0c;打包【Maven】项目&#xff0c;发现生成的可执行jar包&#xff0c;显示【找不到或无法加载主类】。但是用【Maven】的Assembly可以正常生成。期望用传统方法实现打jar包方法&a…

检索增强生成:RAG(Retrieval Augmented Generation)

什么是 RAG&#xff1f;为什么使用 RAG&#xff1f;LLM 微调 和 RAG&#xff1f;实战什么是 RAG&#xff1f; RAG 在论文《Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks》中被引入&#xff0c;原论文是这样描述的&#xff1a; 探索了一种 通用的 检索增…

Android 设置/修改系统NTP服务地址

Android 手机的 NTP 时间同步&#xff08;网络时间同步&#xff09;主要依赖网络&#xff0c;但系统时间来源还包括其他方式&#xff0c;整体时间校准机制是多种来源的结合。具体可分为以下几类&#xff1a; 1. 网络 NTP 同步&#xff08;最主要方式&#xff09; 这是 Androi…

Ubuntu22.04 安装vitis2023.2 卡在“Generating installed device list“.

关于这个问题&#xff0c;xilinx有官方说明&#xff0c;链接 原因&#xff1a;问题是 Ubuntu 20.04 缺少 libtinfo.so.5 库。 解决办法&#xff1a; sudo apt-get install libtinfo5

前端全栈修炼手册:从 Vue3 到工程化的进阶之路

本文将全方位覆盖前端开发的核心知识&#xff0c;从 Vue3 框架的基础语法到复杂的工程化实践&#xff0c;从包管理工具的使用到模块规范的深入理解&#xff0c;带你踏上从入门到精通的进阶之路。 Vue3 框架&#xff1a;新时代前端开发的基石 Vue3 核心语法探秘 Vue3 作为目前…

Jetpack Compose 常用控件

Jetpack Compose 常用控件一、基础展示控件&#xff1a;呈现静态内容二、交互控件&#xff1a;响应用户操作三、列表与网格控件&#xff1a;展示大量数据四、导航与标签控件&#xff1a;组织页面结构五、反馈控件&#xff1a;提示与加载状态六、布局控件&#xff1a;组织 UI 结…