预备役二招算法测试题解

这次题目出的都是一些偏向于基础的题目,就是一些简单的模拟,思维,以及基础算法(二分,前缀和)

(点击题目标题,进入原题)

我是签到题

题解:就是说给你 t 组数据,然后每组数据输入两个,一个x,一个y,然后先输出其中的最小值,再输出其中的最大值。

#include<bits/stdc++.h>
using namespace std; long long x,y;
int main()
{long long t;cin>>t;while(t--){cin>>x>>y;printf("%lld %lld\n",min(x,y),max(x,y));}return 0;
}

能否形成不同的矩形

 

 

题解:能够拆开并且拼凑到一起的边一定是偶数,因此,我们就是单纯去模拟就可以了,如果是偶数就去分开,将其拼凑在一起,判断和之前的是否形成了不一样的矩形(纯粹的模拟题,题目上咋说,你去就咋做)

#include<bits/stdc++.h>
using namespace std;
#define int long longint t;
int a,b;
signed main()
{ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>t;while(t--){int flag=0;cin>>a>>b;int x=0,y=0;if(a%2==0){y=2*b;x=a/2;if(x!=a&&y!=b&&x!=b&&y!=a){flag=1;}}if(b%2==0){y=b/2;x=2*a;if(x!=a&&y!=b&&x!=b&&y!=a){flag=1;}}if(flag==1){cout<<"YES\n";}else{cout<<"NO\n";}}return 0;
}

能否形成不同的字符串

题解:这题比第二个还简单,只需要判断是否能够形成不同的字符串,首先就是你得先判断字符串里面是否有不同的字母,如果没有肯定 是NO,如果有不同的字母,输出YES,并且随机交换两个不同的字母输出就行

#include<bits/stdc++.h>
using namespace std; 
string s;
int t;
int flag;
char r[5000005];
int x,y;
int main()
{cin>>t;while(t--){flag=0;cin>>s;int len=s.size();for(int i=1;i<len;i++){if(s[i]!=s[i-1]){flag=1;x=i,y=i-1;}}for(int i=1;i<len;i++){r[i-1]=s[i];}r[len-1]=s[0];if(flag==0)printf("NO\n");else{printf("YES\n");for(int i=0;i<len;i++){printf("%c",r[i]);}printf("\n");}}return 0;
}

查找

 

这题唯一考点就是二分查找,并且数据结构课应该讲过(我不怎么听课,我不确定,应该是讲过的)

#include<bits/stdc++.h>
using namespace std;int n,m;
int a[1000005];
int target,l,r,mid;
int main()
{scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){scanf("%d",&a[i]);}for(int i=1;i<=m;i++){scanf("%d",&target);l=1;r=n;while(l<r){mid=(l+r)/2;if(a[mid]>=target)r=mid;elsel=mid+1;}if(a[l]==target)printf("%d ",l);elseprintf("-1 ");}return 0;
}

A. Contest Proposal

这题就是说有n个题目,每个题目的难度为a[i],要求每个题目的难度不大于对应的b[i],每次可以添加一个题目并且删去最难的题目,求最多能添加几个题目

思路很简单,只要a[i]>b[i],那么就将a[i]改成b[i],并且重新对数组进行排序,然后继续比较就行

#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll t;
ll n;
ll a[105];
ll b[105];
void solve(){ll u = n;ll sum = 0;for(int i=n;i>=1;i--){if(a[i]>b[u]){sum++;}else {u--;}}printf("%lld\n",sum);
}
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++)cin>>b[i];solve();}return 0;
}

B. Sasha and the Drawing

题解:纯思维性题目,做不出来也算正常,这题 自己在本子上画的话,会发现最多只有前n - 1给才能占两个对角线,也就是2*(n-1)个对角线,剩下的一个涂色只能占一个对角线,因此我们通过这个思路去计算即可

#include<bits/stdc++.h>
using namespace std;
#define int long long
int t;
int n,k;signed main()
{cin>>t;while(t--){cin>>n>>k;int sum=2*n-2;if(k<=(2*n-2)*2){if(k%2==0)cout<<k/2<<"\n";elsecout<<k/2+1<<"\n";}else{int cnt=2*n-2;k-=(2*n-2)*2;cnt+=k;cout<<cnt<<"\n";}}return 0;
}

P1314 [NOIP2011 提高组] 聪明的质监员

题意:就是说给你n个矿石,然后,这n个矿石都有自己的重量w,以及其价值v,我们有一种判断机制,就是说给你m个区间范围,每次给你一个左边界L和右边界R,我们的计算机理是,这个区间内的大于规定筛选重量W的数量,乘以大于筛选重量的价值,然后将总的算出来的y累加到一起,看看和规定的标准值S最小差多少,输出最小的参数W

思路,我们发现这题数据超大,必然会有优化方法,我们通过上面·的题意可以发现,我们的参数设置的越大,能过筛选的石头越少,得到的y值越小,设置的越小,能筛选过的石头越多,得到的y值越大,因此我们可以用二分(二分的范围就是给的数据的石头的最小值到最大值,但是我们还要扩增范围,最小值减一,最大值加二)然后我们每次二分的就是参数W,然后在计算过程中要用到前缀和优化,我们要去记录出现的大于参数的矿石数目以及总价值,然后我们去计算总的Y值,Y值大于标准值S就说明,我们的参数设置的小了,要增大左边界,要是小于标准值,就说明,我们的参数设置的太大了,要缩小右边界

#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,m,s;
int w[200005];
int v[200005]; 
int l[200005],r[200005];
int maxn=0;
int minn=0x3f3f3f3f3f3f3f3f;
int sumn[200005];
int sumv[200005];
int ans=0;//统计本次筛选的总价值
int mn=0x3f3f3f3f3f3f3f3f;//统计最小差值 
bool check(int mid)
{memset(sumn,0,sizeof(sumn));memset(sumv,0,sizeof(sumv));int ans=0;//统计总的价值也就是y[i] for(int i=1;i<=n;i++){if(w[i]>=mid){sumn[i]=sumn[i-1]+1;//统计能过筛查的数量sumv[i]=sumv[i-1]+v[i];//统计能过筛查的价值 }else{sumn[i]=sumn[i-1];sumv[i]=sumv[i-1];}}for(int i=1;i<=m;i++){ans+=(sumn[r[i]]-sumn[l[i]-1])*(sumv[r[i]]-sumv[l[i]-1]);}mn=min(mn,llabs(ans-s));if(ans>s)return true;return false;
}
signed main()
{cin>>n>>m>>s;for(int i=1;i<=n;i++){cin>>w[i]>>v[i];maxn=max(maxn,w[i]);//二分的上下边界 minn=min(minn,w[i]);}int left,right,mid;for(int i=1;i<=m;i++){cin>>l[i]>>r[i];}left=minn-1,right=maxn+2;while(left<=right){mid=(left+right)/2;if(check(mid)){left=mid+1;}else{right=mid-1;}}cout<<mn;return 0;
}

 

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

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

相关文章

每日鲜语携手中国国家高尔夫球队队员殷若宁征战巴黎,打响中国高端鲜奶品牌“鲜”声量

近日&#xff0c;高端鲜奶品牌每日鲜语宣布携手蒙牛品牌代言人、中国国家高尔夫球队队员殷若宁&#xff0c;共赴巴黎奥运赛场&#xff0c;为梦想挥杆而上。邀请众多消费者开启高品质、健康的生活方式。此举不仅彰显了每日鲜语作为高端鲜奶新标杆的品牌定位&#xff0c;也同时延…

vue2.0项目安装依赖 sass 报错

1、报错代码&#xff1a; 2、原因&#xff1a;项目有点老&#xff0c;vue2的版本&#xff0c;所以node-sass在npm安装的时候大概率的会安装出错&#xff0c;或下载时间过长&#xff0c;因此考虑用dart-sass来替换。 npm install node-sassnpm:dart-sass3、然后就可以成功运行了…

leetcode144、145、94二叉树的前、中、后序遍历

本文主要讲解二叉树的前、中、后序遍历的要点与细节&#xff0c;按照步骤思考更方便理解 c代码如下&#xff0c;末尾 具体要点&#xff1a; 1. 首先我们要了解二叉树的前序&#xff0c;中序&#xff0c;后序的遍历顺序&#xff1a; 前序&#xff1a;中 左 右 中序&a…

8.项目结构——黑马程序员Java最新AI+若依框架项目

目录 前言一、后端1.ruoyi-admin2.ruoyi-common3.ruoyi-framework4. ruoyi-generator(可删除)5.ruoyi-quartz&#xff08;可删除&#xff09;5.ruoyi-system6. ruoyi-ui7.sql8.依赖关系9. 总结 二、前端三、SQL 前言 提示&#xff1a;本篇叙述若依前后端项目结构 一、后端 1…

无线领夹麦克风哪个品牌音质最好,揭秘无线麦克风哪个牌子最好!

​在这个数字化、信息化的时代&#xff0c;短视频和直播已经成为了人们生活中不可或缺的一部分。而无线麦克风&#xff0c;则是这些活动中不可或缺的重要工具。它们能够轻松捕捉声音&#xff0c;让内容更加生动、真实。然而&#xff0c;市场上的无线麦克风种类繁多&#xff0c;…

缓存策略概述

缓存策略 缓存策略是指在计算机系统中&#xff0c;为了提高数据访问效率而临时存储常用或频繁访问的数据的技术。这种技术通常在数据的读取过程中发挥作用&#xff0c;减少对原始数据源的请求次数&#xff0c;从而提升性能和响应速度。 在后端系统中&#xff0c;常见的缓存策…

Kubernetes面试整理-Kubelet, Kube-proxy和Kubernetes API 的功能和它们在集群中的作用

在 Kubernetes 集群中,kubelet、kube-proxy 和 Kubernetes API 是三个关键组件,它们在不同层面上支持集群的正常运行。以下是它们的功能及其在集群中的作用: Kubelet 功能 ● 节点管理:kubelet 运行在每个 Worker 节点上,负责节点上的所有 Pod 和容器的管理。 ● Pod 生命…

51-60 CVPR 2024 最佳论文 | Generative Image Dynamics

在2023年11月&#xff0c;谷歌研究院发布了一项令人瞩目的研究成果——Generative Image Dynamics&#xff08;生成图像动力学&#xff09;。这项技术的核心是将静态的图片转化为动态的、无缝循环的视频&#xff0c;而且更令人兴奋的是&#xff0c;这些生成的视频还具有交互性。…

大模型日报2024-06-24

大模型日报 2024-06-24 大模型资讯 大模型产品 AI快速生成专业播客 摘要: MakePodcast.io使用AI语音&#xff0c;只需提供脚本并选择声音&#xff0c;即可在几分钟内生成专业质量的播客。 Sherloq&#xff1a;SQL用户的AI协作仓库 摘要: Sherloq为SQL查询提供一站式管理&#x…

AI赋能天气:微软研究院发布首个大规模大气基础模型Aurora

编者按&#xff1a;气候变化日益加剧&#xff0c;高温、洪水、干旱&#xff0c;频率和强度不断增加的全球极端天气给整个人类社会都带来了难以估计的影响。这给现有的天气预测模型提出了更高的要求——这些模型要更准确地预测极端天气变化&#xff0c;为政府、企业和公众提供更…

高考后的新起点:学校与专业的选择之困

十年前&#xff0c;我踏入了高考的考场。那是一场人生的大考&#xff0c;不仅仅是对知识的检验&#xff0c;更是对未来方向的一次摸索。当最后一门科目的考试铃声响起&#xff0c;我知道&#xff0c;自己即将面临一个新的选择——专业与学校&#xff0c;究竟该如何取舍&#xf…

【转】5种常见的网络钓鱼攻击以及防护手段

2022 年 Verizon 数据泄露调查报告指出&#xff0c;去年 75% 的社会工程攻击涉及网络钓鱼&#xff0c;仅去年一年就有超过 33 万个账户被网络钓鱼&#xff0c;网络钓鱼占整体社会工程攻击的 41%。 不能将所有责任归咎于员工&#xff0c;因为薄弱的安全意识建设及宣教是大部分漏…

XSS跨站攻击漏洞

XSS跨站攻击漏洞 一 概述 1 XSS概述 xss全称为&#xff1a;Cross Site Scripting&#xff0c;指跨站攻击脚本&#xff0c;XSS漏洞发生在前端&#xff0c;攻击的是浏览器的解析引擎&#xff0c;XSS就是让攻击者的JavaScript代码在受害者的浏览器上执行。 XSS攻击者的目的就是…

信息安全系列课程之网络空间测绘与态势感知技术揭秘(二)

今天&#xff0c;我们来讲一下网络安全&#xff01; 本文章仅提供学习&#xff0c;切勿将其用于不法手段&#xff01; 目前&#xff0c;在信息安全攻防领域&#xff0c;主要分为了两个技术发展方向&#xff0c;分别为渗透测试&#xff08;红队技术&#xff09; 和 安全运维&a…

2024还选计算机

一、计算机相关专业是否仍是“万金油”选择&#xff1f; 从当前市场需求和就业趋势来看&#xff0c;计算机相关专业仍然具有较大的吸引力。这些专业所涵盖的技能和知识在现代社会中具有广泛的应用场景&#xff0c;如软件开发、数据分析、网络安全等。因此&#xff0c;选择计算机…

Windows 中 Chrome / Edge / Firefox 浏览器书签文件默认存储路径

1. Chrome 浏览器 按组合键 Win R&#xff0c;打开运行对话框&#xff0c;输入 %USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default或在Chrome 浏览器地址栏输入 chrome://version查看【个人资料路径】 2. Edge 浏览器 按组合键 Win R&#xff0c;打开运行对…

【华为OD机试】 服务中心选址(C++ Java JavaScript Python)

题目 题目描述 一个快递公司希望在一条街道建立新的服务中心。公司统计了该街道中所有区域在地图上的位置,并希望能够以此为依据为新的服务中心选址:使服务中心到所有区域的距离的总和最小。 给你一个数组positions,其中positions[i] = [left, right] 表示第 i 个区域在街道…

GD32F4xx 移植agile_modbus软件包与电能表通信

目录 1. agile_modbus1.1 简介1.2 下载2. agile_modbus使用2.1 源码目录2.2 移植3. 通信调试3.1 代码3.3 通信测试1. agile_modbus 1.1 简介 agile_modbus是一个轻量级的Modbus协议栈,主要特点: 支持RTU和TCP协议,采用纯C语言开发,不涉及任何硬件接口,可直接在任何形式的…

Java流程控制语句

Java流程控制语句有三种&#xff1a; 顺序结构、分支结构和循环结构。 顺序结构&#xff1a; 顺序结构语句是Java程序默认的执行流程&#xff0c;按照代码的先后顺序&#xff0c;从上到下依次执行。 原文链接&#xff1a; Java流程控制控制语句 - 红客网络编程与渗透技术 示例…

[笔记] ONNX Export笔记[进行中...]

1.ONNX模型的优势&#xff1a; ONNX可以提供方便的平台兼容性和方便的移植实现&#xff0c;Opset&#xff0c;可以接收其他的推理模型的的移植&#xff0c;比如从.pt>.onnx。而.onnx利用Runtime规范&#xff0c;以及可扩展接口&#xff0c;把.onnx模型向下兼容到各个硬件平…