Mambas Helicopter 坠机大赛 第4场 题解

news/2025/2/27 16:56:40/文章来源:https://www.cnblogs.com/EndeavourCHN/p/18740742

传送门:https://www.luogu.com.cn/contest/232586

A题 https://www.luogu.com.cn/problem/P1420

循环结构。

C++题解:

点击查看代码
#include <bits/stdc++.h>
using namespace std;
int n, a[10000], count=1, ans=1;//count用于记录当前连号长度,ans记录最长连号
int main() {scanf("%d\n", &n);for(int i=1; i<=n; i++){cin>>a[i];//循环读入}for(int i=2; i<=n; i++){if(a[i]==a[i-1]+1) count++;//判定是否连号,是则连号长度+1if(count>ans) ans=count;//更新最长连号if(a[i]!=a[i-1]+1) count=1;//否则重置当前连号}cout<<ans;//输出答案return 0;
}

Java题解:

点击查看代码
import java.util.Scanner;
public class Main {//洛谷平台Java语言评测时主类名必须是Mainpublic static void main(String[] args) {Scanner scanner=new Scanner(System.in);//创建输入int n=scanner.nextInt();//输入nint num, tmp=0, sum=1, ans=0;//num记录当前读入的数,tmp记录上一个读入的数,sum为当前连号长度,ans为最长连号for(int i=1; i<=n; i++){num=scanner.nextInt();//循环结构内读入nif(i>1){//从第二位开始判断,否则会REif(num==tmp+1) sum++;//连号则+1else sum=1;//否则重置连号if(sum>ans) ans=sum;//更新连号长度}tmp=num;//更新“上一个”读入的数}System.out.println(ans);//输出答案}
}


B题 https://www.luogu.com.cn/problem/P3741

字符串。由于至多改变一个字符,所以思路为先判断字符串中已有的"VK"数量,然后判断改变一个字符是否能够使"VK"数量+1。

C++题解:

点击查看代码
#include <bits/stdc++.h>
using namespace std;
int main() {int n, count=0, row=0;//count为已有“VK”,row记录是否能通过改变一个字符使"VK"数量+1string str;cin>>n;cin>>str;if(n==1) cout<<0;//如果字符串长度为1,显然“VK”数量为0else{for(int i=0; i<n-1; i++){if(str[i]=='V'){if(str[i+1]=='K'){count++;//V和K相邻,“VK”数量++} if(str[i+1]=='V' && str[i+2]!='K') row=1;//多个V相邻,可以改变中间的一个V为K}if(str[i]=='K'){if(i-1>=0){if(str[i-1]!='V' && str[i+1]=='K') row=1;//多个K相邻且首K前不是V}if(i-1<0){if(str[i+1]=='K') row=1;//字符串首为K}}}if(row==1) count++;//若能通过改变一个字符使"VK"数量+1,数量++cout<<count;	}return 0;
}


C题 https://www.luogu.com.cn/problem/P11076

用countF表示小F已赢得的场数,如果他要获胜,那么还需要赢x-countF场。要使他的连胜场数最少,那么就要尽可能均匀地在这里面插入小S获胜的场次,至多插入y-countS场。

C++题解:

点击查看代码
#include <bits/stdc++.h>
using namespace std;char str[200010];
long long T, i, k;
long long n, x, y, countF, countS, ans;
double tmp;int main() {for(i=0; i<2000; i++){str[i]='\0';//清空字符数组}scanf("%lld", &T);for(i=1; i<=T; i++){countF=0;countS=0;scanf("%lld %lld %lld", &n, &x, &y);scanf("%s", str);//读入当前单挑结果for(k=1; k<=n; k++){if(str[k-1]=='F'){countF++;}if(str[k-1]=='S'){countS++;}}if(y-countS==1){ans=x-countF;//如果小S只差一局就赢了,那么小F要全胜}else{tmp=(x-countF)/(y-0.0-countS);//均分小F的胜场为y-countS份ans=ceil(tmp);//向上取整}printf("%lld\n", ans);}return 0;
}


D题 https://www.luogu.com.cn/problem/T578004

C++题解(常规做法):

点击查看代码
#include<bits/stdc++.h>
using namespace std;
//By dzx,枚举
int main(){int n,m,x,y,c=0;cin>>n>>m>>x>>y;for(int i=x,j=y;i>=0&&j>=0;i--,j--){c++;}for(int i=x,j=y;i<=n&&j>=0;i++,j--){c++;}for(int i=x,j=y;i>=0&&j<=m;i--,j++){c++;}for(int i=x,j=y;i<=n&&j<=m;i++,j++){c++;}cout<<c-4;return 0 ;
}

另一C++题解:

点击查看代码
#include<bits/stdc++.h>
using namespace std;
//By grh,大道至简
int n,m,x,y,ans;
int main(){cin >> n >> m >> x >> y;ans = min(x,y) + min(y,n-x) + min(n-x,m-y) + min(m-y,x);cout << ans;return 0;
}


E题

经典高精题。

C++题解:

点击查看代码
#include <bits/stdc++.h>
using namespace std;
int n, len=1;
int ans[1000];//用数组存储答案
int main(){cin>>n;ans[1]=1;//初值赋1if(n==0){cout<<1;//特判,0!=1return 0;}else{for(int i=1; i<=n; i++){for(int j=1; j<=len; j++){//模拟每一位的乘法ans[j]*=i;}for(int j=1; j<=len; j++){//处理进位ans[j+1]+=ans[j]/10;ans[j]%=10;while(ans[len+1]) len++;}}for(int i=len; i>=1; i--){cout<<ans[i];//输出}return 0;}
}

Java题解:

点击查看代码
import java.math.BigInteger;
import java.util.Scanner;
//Java自带大数高精,但是第4和第5测试点会超出3MB内存限制
public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();if(n==0) System.out.println(1);else{BigInteger factorial = calculateFactorial(n);System.out.println(factorial);}}public static BigInteger calculateFactorial(int number) {BigInteger result = BigInteger.ONE;for (int i = 1; i <= number; i++) {result = result.multiply(BigInteger.valueOf(i));}return result;}
}


F题

结构体+排序

C++题解:

点击查看代码
#include <bits/stdc++.h>
using namespace std;
int n;
struct man{int eng, math;//创建结构体,eng和math分别记录英语和数学成绩
} m[30];
int cmp(man x, man y){//排序策略if(x.eng==y.eng) return x.math>y.math;//如果英语相同,数学分高者在前return x.eng>y.eng;//否则英语分高者在前
}
int main(){cin>>n;for(int i=1; i<=n; i++){cin>>m[i].eng>>m[i].math;}sort(m+1, m+1+n, cmp);//排序for(int i=1; i<=n; i++){cout<<m[i].math<<endl;}return 0;
}

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

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

相关文章

【T20天正电气V10.0软件下载与安装教程】

1、安装包 扫描下方二维码关注「软知社」,后台回复【024】三位数字即可免费获取分享链接,无广告拒绝套路; 2、安装教程双击T20天正电气V10.0安装包,弹窗安装对话框选择我接收,点击下一步选择安装位置,点击下一步点击下一步等待安装进度完成安装完成,点击完成按钮点击下…

windows底层激活破解一步到位,TSforge也太暴力了!

windows底层激活破解一步到位,TSforge也太暴力了! windows底层激活破解一步到位,TSforge也太暴力了! 微软系统一直是需要收费的,也是电脑用户们经常遇到的问题,市面上也有很多工具, 但是今天的工具是最新的且**呼声最高、最彻底的**,需要的话赶紧保存下来,实际使用只需…

No.23 CSS--定位

一、定义position属性指定了元素的定位类型。其中,绝对定位和固定定位会脱离文档流. 设置定位之后:可以使用四个方向值进行调整位置:Ieft、top、right、bottom.二、相对定位<head><meta charset="UTF-8"><meta name="viewport" content=&q…

机器人保养指南周期性检修

机器人保养指南——那智不二越机器人日常维护、专业维修与周期性检修在进行那智不二越机器人的日常检查、维修、部件更换或任何其他相关作业时,首要且至关重要的一步是确保已切断电源,只有在完全断电的情况下,方可安全地进行后续操作。此外,还应在一次电源等关键位置设置明…

OERV兴趣探索:模拟器移植

最近看了很多开源项目,主要都集中在模拟器方面,我指的是游戏模拟器比如GameBoy或者PlayStation这一类。现在想玩这系列的游戏可以在手机或者电脑下载相应的模拟器,并且获取对应的ROM文件,不过也有一些模拟器是可以运行在Linux上面的,为了进一步探索,我选择了相对较小的项…

HTTP协议与RESTful API实战手册(二):用披萨店故事说透API设计奥秘

title: HTTP协议与RESTful API实战手册(二):用披萨店故事说透API设计奥秘 🍕 date: 2025/2/27 updated: 2025/2/27 author: cmdragon excerpt: 📦 本系列第二篇通过披萨店创业的完整案例,手把手教你: 用外卖订单理解HTTP协议细节 5个RESTful设计常见误区与修正方案 …

全局注册svg批量自动引入,动态修改svg以及样式配置问题

1.安装依赖npm i vite-plugin-svg-icons2.文件存放svg 3.全局组件svg-icon(直接放到全局组件目录下)<template><svg class="svg-icon"><use :xlink:href="`#icon-${props.name}`" class="mySVG":style="stroke: + props.…

msyql中单表语句

二、聚合函数 (1)max 最小值 select max(math) from student (2)min 最大值 select min(math) from student (3)sum 总数 select sum(math) from student (4)avg平均数 select avg(math) from student (5)count 统计个数 select count(math) from stu…

Java SpringBoot实现简易扫码登录流程 附项目代码

SpringBoot实现简易扫码登录流程,附项目代码先总结流程:移动端请求扫码登录,服务端生成二维码并缓存二维码ID和状态,将二维码的Base64格式返回给前端展示; PC端页面轮询检查二维码状态; 手机扫码后调用扫码接口,携带移动端的Token和二维码ID请求服务端,服务端根据扫码的…

Salesforce宣布2025年不招工程师,技术岗位真的会消失吗?

Salesforce CEO Marc Benioff 最近放出了一条让科技圈热议的消息:2025年,Salesforce将不再招聘新的软件工程师。作为全球最大的CRM软件提供商之一,这一决定引发了许多人对AI对就业市场影响的思考。 AI改变工作模式,工程师岗位需求减少 Marc Benioff 在采访中透露,2024年,…

mysql查询语句

一、查询语句 1、select查询一个表中的所有数据 格式: select * from 表名 ; 案例: select * from student ;2、查询部分字段信息数据 格式: select 字段1,字段2 from 表名; 案例: select name,math from student;3、查询字段可以用as 取别名 格式: select 字…

Vue3安装配置+VSCode开发环境搭建,超详细保姆级教程(图文)

目录1. node.js 下载安装2. 查看 node.js 是否安装成功3. 配置 npm 下载的默认安装、缓存环境(1) 添加文件夹(2) 设置系统环境变量(3) 修改下载模块的存放路径4. npm 镜像源配置(1) 输入cmd打开命令提示符窗口,(2) 如果配置报错(3) 查看镜像配置是否成功5. 安装 vue-cli 工具6.…