河南萌新联赛2024第(一)场:河南农业大学 A D F G H I K

A 造数

题目描述:

给定一个整数 𝑛 ,你可以进行以下三种操作
操作1: +1
操作2; +2
操作3: ×2
问最少需要多少次操作可以将 0 转为为 𝑛 。

解题思路

操作1,2,3。操作 3 的使 n 变小的更快。

AC代码

#include<bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define int long long
void solve()
{int n;cin>>n;int ans=0;while(n){if(n==1||n==2)//操作1,操作2 的 逆过程{ans++;break;}if(n%2==1) //操作 1 的逆过程{n--;ans++;}else // 操作 3 的逆过程{n/=2;ans++;}}cout<<ans;
}
signed main()
{int t;t=1;while(t--)solve();return 0;
}

D 小蓝的二进制询问

题目描述

小蓝有 𝑡 组询问,每次给定两个数字 l,r 你需要计算出区间 [𝑙,𝑟] 中所有整数在二进制下1的个数之和。由于结果特别大,你只需要计算出结果模998244353之后的值即可。

解题思路

求出区间 [ 0 , x ] 之间的数的二进制下数的第 k 位是 1 时的所有情况

1.第 k 位前的数 为 k ^ 2 的倍数(周期 tl 的倍数),这时第 k 位后全为 0
2. 第 k 位以及第 k 位后的数(为第 1 种情况的余数就是认定为 0 的数,实际不一定为 0 )如果大于周期,则加上大出的部分,否则不加

AC代码

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int mod=998244353;
int f(int x,int k)
{int y=1ll<<(k+1);// 2 的 k + 1 次幂,用于求出 x 的周期倍数int tl=y/2;// 周期(当第 k 位为 1 时,k 位之后为 0 1 的所有情况)x++;// 自增,用于后续判断 第 k 位 是否为 1 int res=(int)(x/y)*tl;// 计算出第一种情况int r=x%y; //求出第 k 位到 0 位的数r-=tl;if(r>0)res+=r;//计算第 2 种情况return res%mod;
}
void solve()
{int l,r;cin>>l>>r;int ans=0;for(int i=61;i>=0;i--){int t=(f(r,i)-f(l-1,i))%mod;// 第 i 位为 1 时,[0 ,r] 与 [0,l-1] 的情况差ans=(ans+t)%mod;}cout<<ans<<'\n';
}
signed main()
{int t;cin>>t;while(t--)solve();return 0;
}

F 两难抉择新编

题目描述

现在有长度为 n n n 的数组 a a a,你可以在两种操作中选择一种进行最多一次操作。

  • 操作1:

选择一个数 i i i ( 1 ≤ i ≤ n ) (1\leq i\leq n) (1in) 使得 a i : = a i + x a_i:=a_i+x ai:=ai+x x x x 可以是 [ 1 , ⌊ n / i ⌋ ] [1,\lfloor n/i \rfloor] [1,n/i⌋] 范围内任意正整数( ⌊ ⌋ \lfloor\rfloor 表示向下取整 )。

  • 操作2:

选择一个数 i i i ( 1 ≤ i ≤ n ) (1\leq i\leq n) (1in) 使得 a i : = a i × x a_i:=a_i \times x ai:=ai×x x x x 可以是 [ 1 , ⌊ n / i ⌋ ] [1,\lfloor n/i \rfloor] [1,n/i⌋] 范围内任意正整数。

请问进行操作后,最大的数组异或和是多少?

数组异或和:数组 a a a a 1 ⊕ a 2 ⊕ a 3 . . . ⊕ a n a_1\oplus a_2 \oplus a_3 ... \oplus a_n a1a2a3...an的值, ⊕ \oplus 表示异或。

解题思路

直接模拟所有情况,理解异或( ^ )的自逆

AC代码

#include<bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define int long long
#define PII pair<int,int>
#define fi first
#define se second
const int N=2e5+10;
int a[N];
void solve()
{int n;cin>>n;int sum=0;for(int i=0;i<n;i++){cin>>a[i];if(i==0){sum=a[i];continue;}sum=sum^a[i];}int ans=0;for(int i=0;i<n;i++){int t=sum^a[i];for(int j=1;j<=n/(i+1);j++){int x=t^(j+a[i]),y=t^(j*a[i]);ans=max(ans,max(x,y));}}cout<<ans;
}
signed main()
{int t;
//	cin>>t;t=1;while(t--)solve();return 0;
}

G 旅途的终点

题目描绘

在某大陆上面有 n n n 个国家,作为旅行者兼冒险家的你想以一种既定的路线(即从1到 n n n )去畅游这 n n n 个国家,但由于这 n n n 个国家并不太平,因此每到一个国家你都需要消耗 a i a_i ai 点的生命力来帮助这个国家重回往日的安宁然后再进行畅游。不过天生拥有神力的你却有 k k k 次释放神力的机会来帮助这个国家恢复安宁,且释放神力时不消耗任何生命力。你在旅行前拥有 m m m 点的生命力,若你在旅途中不幸用完全部的生命力,则便会回到你诞生的地方陷入沉睡。现在请问你最多可以畅游多少个国家。注意:若在当前国家消耗完生命力则意味着你并没有畅游该国家。

输入

输入包含 2 行。
第一行三个正整数 n , m , k ( 1 ≤ n ≤ 2 × 1 0 5 , 1 ≤ m ≤ 1 0 18 , 0 ≤ k ≤ 2 × 1 0 5 ) n,m,k(1≤n≤2\times10^5,1≤m≤10^{18},0≤k≤2\times10^5) nmk(1n2×105,1m1018,0k2×105) ,分别代表国家的个数,你拥有的初始生命力,你可以释放神力的次数。
第二行包含 n n n 个正整数,第 i i i 个正整数 a i ( 1 ≤ a i ≤ 1 0 18 ) a_i (1≤a_i≤10^{18}) ai(1ai1018) 代表你不释放神力帮助第 i i i 个国家需要消耗的生命力的大小。

输出

输出包含一行,共一个数,表示你能畅游的国家的个数。

解题思路

逆贪心,用优先队列 ,需要释放技能时,每次消化当前位置到首位的最大值。

AC代码

#include<bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define int long long
#define PII pair<int,int>
#define fi first
#define se second
const int N=2e5+10;
void solve()
{priority_queue<int>q;int n,m,k;cin>>n>>m>>k;int ans=0;int i;for(i=0;i<n;i++){int x;cin>>x;m-=x;q.push(x);if(m<=0&&k){k--;m+=q.top();q.pop();}if(m<=0)break;}cout<<i;
}
signed main()
{int t;
//	cin>>t;t=1;while(t--)solve();return 0;
}

H 两难抉择

题目描述

现在有长度为 n n n 的数组 a a a,你可以在两种操作中选择一种进行最多一次操作。

  • 操作1:

选择一个数 i i i ( 1 ≤ i ≤ n ) (1\leq i\leq n) (1in) 使得 a i : = a i + x a_i:=a_i+x ai:=ai+x x x x 可以是 [ 1 , n ] [1,n] [1,n] 范围内任意正整数。

  • 操作2:

选择一个数 i i i ( 1 ≤ i ≤ n ) (1\leq i\leq n) (1in) 使得 a i : = a i × x a_i:=a_i \times x ai:=ai×x x x x 可以是 [ 1 , n ] [1,n] [1,n] 范围内任意正整数。

请问进行操作后,最大的数组总和是多少?

输入

输入包含两行.
第一行一个正整数 n n n ( 1 ≤ n ≤ 2 × 1 0 5 ) (1\leq n\leq 2 \times 10^5) (1n2×105) 表示数组 a a a 的长度。
第二行 n n n 个正整数 a i a_i ai ( 1 ≤ a i ≤ 1 0 9 ) (1\leq a_i \leq10^9) (1ai109) 表示数组 a a a 的元素。

输出

输出包含一行一个整数,表示最大的数组总和。

解题思路

变化最大的 a i a_i ai ,使数组和最大

AC代码

#include<bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define int long long
#define PII pair<int,int>
#define fi first
#define se second
const int N=2e5+10;
int a[N];
void solve()
{int n;cin>>n;int ma=-1,sum=0;for(int i=0;i<n;i++){cin>>a[i];sum+=a[i];ma=max(a[i],ma);}sum-=ma;if((sum+ma*n)>=(sum+ma+n))cout<<sum+ma*n;else    cout<<sum+ma+n;
}
signed main()
{int t;t=1;while(t--)solve();return 0;
}

I 除法移位

题目描述

现在有长度为 n n n 的数组 a a a,式子 S S S 定义为 S = a 1 ÷ a 2 ÷ a 3 . . . ÷ a n S=a_1\div a_2\div a_3...\div a_n S=a1÷a2÷a3...÷an,最多对数组 a a a 进行 t t t循环右移操作**。
**

请问,进行第几次操作时使得 S S S 最大?若存在多种答案,请输出最小值。

循环右移:一次操作使数组从 a 1 , a 2 , a 3 , . . . , a n a_1,a_2,a_3,...,a_n a1,a2,a3,...,an 形式转换为 a n , a 1 , a 2 , . . . , a n − 1 a_n,a_1,a_2,...,a_{n-1} an,a1,a2,...,an1 形式。

输入

输入包含两行.
第一行一个正整数 n , t n,t n,t ( 1 ≤ n ≤ 2 × 1 0 5 , 0 ≤ t ≤ 1 0 9 ) (1\leq n\leq 2\times10^5,0\leq t\leq 10^9) (1n2×105,0t109) 表示数组 a a a 的长度和最多的操作次数。
第二行 n n n 个正整数 a i a_i ai ( 1 ≤ a i ≤ 1 0 9 ) (1\leq a_i \leq10^9) (1ai109) 表示数组 a a a 的元素。

输出

输出包含一行一个整数,表示使得 S S S 最大的最小操作次数。

解题思路

尽可能将大数移到首位

AC代码

#include<bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define int long long
#define PII pair<int,int>
#define fi first
#define se second
const int N=2e5+10;
int a[N];
map<int , int>mp;
vector<int> q;
map<int,int>v;
void solve()
{int n,t;cin>>n>>t;int ma=-1;for(int i=1;i<=n;i++){cin>>a[i];mp[a[i]]=i;v[a[i]]++;if(v[a[i]]==1){q.push_back(a[i]);}}sort(q.begin(),q.end());int ans=0;for(int i=q.size()-1;i>=0;i--){int x=q[i];int y=mp[x];if((n-y+1)<=t){ans=n-y+1;break;}}if(ans==n)ans=0;cout<<ans;
}
signed main()
{int t;
//	cin>>t;t=1;while(t--)solve();return 0;
}

K 图上计数(Easy)

题目描述

E a s y Easy Easy 版本和 H a r d Hard Hard 版本唯一的区别是 H a r d Hard Hard 版本删除的是桥,而 E a s y Easy Easy 版本删除的是任意边。
你有一张 n n n 个点 m m m 条边的无向图,你有无数次删除操作来删除任意条边以获得若干个联通块。定义联通块的大小为其所包含点个数。定义这个图的代价是:你有任意次操作,每次操作合并两个联通块,合并后联通块大小为二者之和,最后剩下两个联通块大小的乘积为此图的代价,若只有一个则代价为0。你需要最大化此图代价。

输入

第一行包含两个整数 n n n m m m ,图中顶点的数量和边的数量。

接下来的每 m m m 行包含两个整数 u u u v v v ,表示图中顶点 u u u v v v 之间有一条无向边。

( 0 < n ≤ 1 0 6 ) \left ( 0< n\leq 10^{6} \right ) (0<n106)

( 0 ≤ m ≤ 1 0 6 ) \left ( 0\leq m\leq 10^{6} \right ) (0m106)

( 0 < u , v ≤ n ) \left ( 0< u,v\leq n \right ) (0<u,vn)

输出

输出一个整数表示最大代价。

解题思路

删除所有边,可能任意组合

AC代码

#include<bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define int long long
#define PII pair<int,int>
#define fi first
#define se second
void solve()
{int n;cin>>n;cout<<(n/2)*(n-n/2);
}
signed main()
{int t;
//	cin>>t;t=1;while(t--)solve();return 0;
}

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

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

相关文章

隐语隐私计算实训营「联邦学习」第 3 课:隐语架构概览

【隐私计算实训营】是蚂蚁集团隐语开源社区出品的线上课程&#xff0c;自实训营上线以来&#xff0c;获得行业内外广泛关注&#xff0c;吸引上千余名开发者报名参与。本次暑期夏令营课程中&#xff0c;除了最新上线的「联邦学习系列」&#xff0c;还包含了「隐私保护数据分析」…

喜报!极限科技再获国家发明专利:《一种超大规模分布式集群架构的数据处理方法》,引领大数据处理技术创新

近日&#xff0c;极限数据&#xff08;北京&#xff09;科技有限公司&#xff08;简称&#xff1a;极限科技&#xff09;传来喜讯&#xff0c;公司再次斩获国家发明专利授权。这项名为"一种超大规模分布式集群架构的数据处理方法"的专利&#xff08;专利号&#xff1…

数学基础【俗说矩阵】:初等矩阵和矩阵的初等行变化关系推导

初等矩阵和矩阵的初等行变换 初等矩阵 矩阵的初等行变换 对单位阵E进行一次初等行变化得到的阵叫做初等阵。 这里只能进行一次初等行变换。 置换阵 给矩阵【左乘】一个【置换阵】&#xff0c;相当与对该矩阵进行了一次【置换阵】对应的【置换】初等行变换&#xff1b; 数…

部署django

部署Django项目到Apache HTTP服务器上,通常会使用mod_wsgi模块,这是Apache的一个扩展,专为Python web应用设计,可以很好地与Django集成。以下是部署Django项目的简要步骤: 准备工作 确保环境准备就绪: 确保你的系统中已安装了Python、Django以及Apache HTTP Server。安装…

​人人开源renren-security:基于SpringBoot、Vue3、ElementPlus等框架开发的权限管理系统

摘要&#xff1a; 随着信息技术的快速发展&#xff0c;企业的信息系统安全需求日益凸显。renren-security是一套基于SpringBoot、MyBatis-Plus、Shiro、Vue3、ElementPlus等框架开发的权限管理系统&#xff0c;它旨在为企业提供高效、安全、易用的权限管理解决方案。本文详细阐…

Serverless技术的市场调研与发展分析

目录 一、 Serverless基础 1.1 Serverless产生的背景 1.2 什么是Serverless 1.3 Serverless架构优势 1.3.1 按需使用的资源管理 1.3.2 简化业务运维复杂度 1.4 Serverless和Service Mesh相同点 1.5 Serverless基础架构 1.5.1 函数管理 1.5.2 事件触发器 1.5.3 函数的…

【论文阅读笔记】Hierarchical Neural Coding for Controllable CAD Model Generation

摘要 作者提出了一种CAD的创新生成模型&#xff0c;该模型将CAD模型的高级设计概念表示为从全局部件排列到局部曲线几何的三层神经代码的层级树&#xff0c;并且通过指定目标设计的代码树来控制CAD模型的生成或完成。具体而言&#xff0c;一种带有“掩码跳过连接”的向量量化变…

html网页使用tesseract实现OCR文字识别

即在前端实现OCR文字识别 1.前端代码 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>OCR文字识别…

[SUCTF 2018]GetShell

查看源代码发现源码 if($contentsfile_get_contents($_FILES["file"]["tmp_name"])){ 保存上传文件在临时文件目录$datasubstr($contents,5); 切片从第五个字符开始之后的所有字符foreach ($black_char as $b) { 看看有没有黑名单有…

XMind PRO 最新2024版 思维导图软件安装下载教程,免费领取,图文步骤详解(内置软件包,可激活使用)

文章目录 软件介绍软件下载安装步骤激活步骤 软件介绍 XMind 2024是一款功能强大的思维导图和头脑风暴软件&#xff0c;它帮助用户清晰地组织和表达思维&#xff0c;融合艺术与创造力&#xff0c;使思维过程更加高效和直观。以下是关于XMind 2024的详细介绍&#xff1a; 主要功…

ArcGIS Pro SDK (九)几何 8 线段

ArcGIS Pro SDK &#xff08;九&#xff09;几何 8 线段 文章目录 ArcGIS Pro SDK &#xff08;九&#xff09;几何 8 线段1 使用两个地图点构造线段2 更改线段坐标 环境&#xff1a;Visual Studio 2022 .NET6 ArcGIS Pro SDK 3.0 1 使用两个地图点构造线段 // 使用 builder…

[数据集][目标检测]婴儿车检测数据集VOC+YOLO格式1073张5类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;1073 标注数量(xml文件个数)&#xff1a;1073 标注数量(txt文件个数)&#xff1a;1073 标注…

在Linux(CentOS、Ubuntu等等)中安装Erlang和Elixir

检查旧版本 $ uname -a Linux ws-ersyia-0 5.4.241-1-tlinux4-0017.10 #1 SMP Wed May 8 17:01:03 CST 2024 x86_64 x86_64 x86_64 GNU/Linux ➜ /workspace elixir --version Erlang/OTP 24 [erts-12.3.2.17] [source] [64-bit] [smp:8:2] [ds:8:2:10] [async-threads:1] [j…

Java 和 SpringBoot 中的设计模式 详解

一、建造者模式 发生场景 假如有一结果api结果返回值的类Person&#xff0c;其在代码中频繁被使用。如果要使用它&#xff0c;一般的方法是&#xff1a; public class Main {public static void main(String[] args) {//方法1&#xff0c;使用全量的构造函数Person person1 …

MF173:将多个工作表转换成PDF文件

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套&#xff0c;分为初级、中级、高级三大部分&#xff0c;教程是对VBA的系统讲解&#…

探索特征的隐秘关联:在Scikit-Learn中进行特征交互作用分析

探索特征的隐秘关联&#xff1a;在Scikit-Learn中进行特征交互作用分析 在机器学习中&#xff0c;特征交互作用分析是一种强大的技术&#xff0c;用于发现特征之间可能存在的复杂关系。Scikit-Learn&#xff08;简称sklearn&#xff09;&#xff0c;作为Python中广泛使用的机器…

c++判断路径是否存在,判断文件夹是否存在

c14 文章目录 路径是否存在文件夹是否存在 路径是否存在 bool filePathExists(std::experimental::filesystem::path& file_path) {if (std::experimental::filesystem::exists(file_path) && !std::experimental::filesystem::is_directory(file_path)){return …

nginx 配置多个服务

http{server {listen 80;server_name 域名1;#项目支持https&#xff0c;如果用http访问导向到https中rewrite ^(.*)$ https://$host$1 permanent; }# 配置项目2server {listen 80;server_name 域名2;location / {root C:\\work\\nginx-1.24.0\\html\\项目2地址…

三、初识C语言(3)

1.操作符 &#xff08;1&#xff09;算术操作符 - * / % 商 余&#xff08;取模&#xff09; 小算法&#xff1a; 若a<b&#xff0c;则a%b a 若a%b c&#xff0c;则0 < c < b-1 若两个int 类型数相除&#xff0c;结果有小数会被舍弃。 保留小数…

LeetCode岛屿的最大面积(深度搜索)/什么是深搜,简单案例回顾图用邻接表实现图的深度优先遍历。

看这道题不懂深度搜索的可以看看下面讲述 岛屿的最大面积 解题思路 代码 class Solution {int dfs(vector<vector<int>>& grid, int cur_i, int cur_j) {//确定边界if((cur_i >0 && cur_i < grid.size()) && (cur_j >0 &&…