2025年GPLT团体程序设计天梯赛L1-L2

目录

1.珍惜生命

2.偷感好重

 3.高温补贴

 4.零头就抹了吧

5.这是字符串题

 6.这不是字符串题

 7.大幂数​编辑

 8.现代战争​编辑

9.算式拆解

10.三点共线 

11.胖达的山头

12.被n整除的n位数


1.珍惜生命

【解析】直接输出即可

#include<bits/stdc++.h>
using namespace std;
int main(){cout<<"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.";
} 

2.偷感好重

【解析】直接将三个数相加即可

#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b,c;
cin>>a>>b>>c;
int sum=a+b+c;
cout<<sum;	
}

 3.高温补贴

【解析】这题才开始正向根据题意即先考虑是否补贴的话题意可能有些不清楚,那我们逆着想不补贴的情况写了,剩下的就是补贴的了。

#include<bits/stdc++.h>
using namespace std;
int main(){int T,s,t;cin>>T>>s>>t;int f=0;if((T>35&&t>=33)&&!s){
cout<<"Shi Nei"<<endl;
cout<<T;	}else if(s&&(T<=35||t<33)){cout<<"Bu Re"<<endl;cout<<t;}else if((T<=35||t<33)&&!s){cout<<"Shu Shi"<<endl;cout<<t;}else{cout<<"Bu Tie"<<endl;cout<<T;}}

 4.零头就抹了吧

【解析】 二进制取整

 #include<bits/stdc++.h>
using namespace std;
int n;
vector<int> a;
int main(){cin>>n;while(n){a.push_back(n>>1);n>>=1;
}
int k=1;
for(int i=0;i<a.size()-1;i++){k<<=1;
}
cout<<k;
}

5.这是字符串题

【解析】数组模拟

#include<bits/stdc++.h>
using namespace std;
string s;
int a[27],b[27];
long long sum=0;
int main(){
cin>>s;
memset(b,0,sizeof(b));
for(int i=0;i<26;i++){cin>>a[i];
}
for(int i=0;i<s.size();i++){sum+=a[s[i]-'a'];b[s[i]-'a']++;
}
for(int i=0;i<26;i++){cout<<b[i];if(i!=25)cout<<" ";
}
cout<<endl;
cout<<sum;	
} 

 6.这不是字符串题

【解析】哇,这个不是字符串题比不是字符串题要难得多啊,我的思路是数组纯模拟 

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int  a[N];
int m,n;
string s;
void slove1(){ 	
int b[N],c[N];int x,y;;cin>>x;for(int i=0;i<x;i++)cin>>b[i];cin>>y;for(int i=0;i<y;i++)cin>>c[i];int i=1,j=0;while(i<=n){if(a[i]==b[j])j++;else j=0;if(j==x)break;i++;	}  if(j==x){int d[N],cnt=0;for(int p=i+1;p<=n;p++)d[cnt++]=a[p]; int  p,q;for(p=i-x+1,q=0;q<y;q++,p++)a[p]=c[q]; for(q=p,i=0;i<cnt;i++)a[q++]=d[i];n=q-1;}	
}
void slove2(){for(int i=1;i<n;i++){if((a[i]+a[i+1])%2==0){int b[N];int k=(a[i]+a[i+1])/2;int cnt=0;for(int j=0,p=i+1;p<=n;p++,j++){b[j]=a[p];cnt++;}a[i+1]=k;   for(int j=i+2,p=0;p<cnt;j++,p++){a[j]=b[p];} n++;i++;}	}
}
void slove3(){int i,j;cin>>i>>j;int k[j-i+10];for(int p=0,q=i;q<=j;q++,p++){k[p]=a[q];}for(int p=j-i,q=i;q<=j;q++,p--){a[q]=k[p];}
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=0;i<m;i++){int x;cin>>x;if(x==1){slove1();}else if(x==2){slove2();	}else if(x==3){slove3();	}
}  
cout<<a[1];for(int i=2;i<=n;i++)
cout<<" "<<a[i];
}

 7.大幂数

【解析】数据范围不是很大,可以暴力枚举

#include<bits/stdc++.h>
using namespace std;
int main(){int n;cin>>n;int f=0;int res,c;//降幂寻找// 2<n<2^31 意味着幂次最大为31  for(int i=31;i>=1;i--){//必须开long long 否则会爆!!! long long sum=1,j=2;while(sum<n){sum+=pow(j,i);if(sum==n){f=1;res=j;c=i;break;}j++;}//最大幂找到后退出 if(f)break;	}if(f){printf("1^%d",c);for(int l=2;l<=res;l++)printf("+%d^%d",l,c);}else printf("Impossible for %d.",n); 
}

 8.现代战争

【解析】模拟

#include<bits/stdc++.h>
using namespace std;
long long g[1010][1010];
long long max_x=-0x3f3f3f3f3f;
int main(){int n,m,k;cin>>n>>m>>k;int x,y; for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>g[i][j];if(g[i][j]>=max_x){x=i,y=j;max_x=g[i][j];}}}while(k--){for(int p=1;p<=n;p++){g[p][y]=-0x3f3f3f3f3f;}for(int p=1;p<=m;p++){g[x][p]=-0x3f3f3f3f3f;}max_x=-0x3f3f3f3f;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){if(g[i][j]>=max_x){x=i,y=j;max_x=g[i][j];}}	}
}
int c1=1;for(int i=1;i<=n;i++){int c=1,f=0;for(int j=1;j<=m;j++){if(!f&&g[i][j]!=-0x3f3f3f3f3f){f=1;cout<<g[i][j];}else if(g[i][j]!=-0x3f3f3f3f3f&&f){cout<<" "<<g[i][j];}}if(c1<=n-k&&f)cout<<endl;if(f)c1++;
}
}

9.算式拆解

 【解析】这个题就是模拟栈的过程

#include<bits/stdc++.h>
using namespace std;
char s[150];
vector<char> h,k; 
int main(){scanf("%s",s);for(int i=0;i<strlen(s);i++){ 
//当遇到")"弹出if(s[i]==')') {while(h.size()&&h.back()!='('){char x=h.back();h.pop_back();k.push_back(x);}h.pop_back();while(k.size()){char x=k.back();k.pop_back();cout<<x;	}cout<<endl;}else h.push_back(s[i]);
}
}

10.三点共线 

【解析】这个地方我直接用的暴力枚举和离散化处理。这题也有一个前置条件,即满足共线的条件x2=2*x1-x0。

#include<bits/stdc++.h>
using namespace std;
int n;
//便于离散化处理
const int N=4e6;
vector<int>a,b; 
bool c[2*N+10];
int main(){cin>>n;//输入for(int i=0;i<n;i++){int x,y;cin>>x>>y;if(y==0)a.push_back(x);else if (y==1)b.push_back(x);else c[x+N]=true; }//进行去重,防止重复遍历sort(a.begin(),a.end());sort(b.begin(),b.end());a.erase(unique(a.begin(),a.end()),a.end());b.erase(unique(b.begin(),b.end()),b.end());//暴力枚举int k=0;for(int j=0;j<b.size();j++){for(int i=0;i<a.size();i++){
//满足共线条件int x3=2*b[j]-a[i];//离散化操作if(c[x3+N]){k=1;printf("[%d, 0] [%d, 1] [%d, 2]\n",a[i],b[j],x3);
}}
}
if(k==0)
cout<<-1;
}

11.胖达的山头

【解析】1.区间分组问题

#include<bits/stdc++.h>
using namespace std;
const int N=100010;
struct Range{int l,r;
}range[N];
bool cmp(Range x,Range y)
{return x.l<y.l;
}
int main()
{int n;cin>>n;for(int i=0;i<n;i++){
string a,b;
cin>>a>>b;
int p=0,q=0;for(int i=0;i<a.size();i++){if(a[i]!=':')p*=10,p+=a[i]-'0';
}
for(int i=0;i<b.size();i++){if(b[i]!=':')q*=10,q+=b[i]-'0';
}
range[i].l=p;
range[i].r=q;	
}sort(range,range+n,cmp);priority_queue<int,vector<int>,greater<int>> heap;for(int i=0;i<n;i++){if(heap.empty()||heap.top()>=range[i].l) heap.push(range[i].r);else {heap.pop();heap.push(range[i].r);}}cout<<heap.size();return 0;
}

 2.将题目转化为在同一时刻最多有多少只胖达同时处于活跃状态,这个最大并发活跃数就是我们最少需要的山头数量,利用差分来写。具体的可以看PAT 2025天梯赛L2-3. 胖达的山头 - AcWing

#include<bits/stdc++.h>
using namespace std;
const int N=250000;
int sum[N];
int n;
int main(){cin>>n;
getchar();
memset(sum,0,sizeof(sum)); 
for(int i=0;i<n;i++){
string a,b;
cin>>a>>b;
int p=0,q=0;for(int i=0;i<a.size();i++){if(a[i]!=':')p*=10,p+=a[i]-'0';
}
for(int i=0;i<b.size();i++){if(b[i]!=':')q*=10,q+=b[i]-'0';
}
sum[p+1]++;
sum[q+2]--;	
}
int ans=0;
for(int i=1;i<N;i++){sum[i]+=sum[i-1];ans=max(ans,sum[i]);
}
cout<<ans;
}

12.被n整除的n位数

【解析】 dfs直接进行暴力搜索。

#include<bits/stdc++.h>
using namespace std;
long long a,b;
int n;
int k[20];
int f=0;
void dfs(int x,long long s){if(x==n){if(s>=a&&s<=b){cout<<s<<endl;f=1;}return ;}for(int i=0;i<=9;i++){long long k=s*10+i;
//回溯前进行判断是否能够被当前位置整除,剪枝if(k%(x+1)==0)dfs(x+1,s*10+i);}}
int main(){cin>>n;cin>>a>>b;
//这里没有保证a,b也是n位数,所以我们要用to_string函数,不能用a-pow(10,n-1)int l=to_string(a)[0]-'0';int r=to_string(b)[0]-'0';for(int i=l;i<=r;i++)dfs(1,i); if(!f)cout<<"No Solution";
}

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

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

相关文章

promethus基础

1.下载prometheus并解压 主要配置prometheus.yml文件 在scrape_configs配置项下添加配置(hadoop202是主机名)&#xff1a; scrape_configs: job_name: ‘prometheus’ static_configs: targets: [‘hadoop202:9090’] 添加 PushGateway 监控配置 job_name: ‘pushgateway’…

缓存与数据库数据一致性:旁路缓存、读写穿透和异步写入模式解析

旁路缓存模式、读写穿透模式和异步缓存写入模式是三种常见的缓存使用模式&#xff0c;以下是对三种经典缓存使用模式在缓存与数据库数据一致性方面更全面的分析&#xff1a; 一、旁路缓存模式&#xff08;Cache - Aside Pattern&#xff09; 1.数据读取流程 应用程序首先向缓…

【ESP32S3】 下载时遇到 libusb_open() failed 解决方案

之前写过一篇 《VSCode 开发环境搭建》 的文章&#xff0c;很多小伙伴反馈说在下载固件或者配置的时候会报错&#xff0c;提示大多是 libusb_open() failed ...... &#xff1a; 这其实是由于 USB 驱动不正确导致的&#xff0c;准确来说应该是与 ESP-IDF 中内置的 OpenOCD 需要…

ISCTF2024-misc(部分)

前言 之前写的&#xff0c;一直没发&#xff0c;留个记录吧&#xff0c;万一哪天记录掉了起码在csdn有个念想 1.少女的秘密花园 打开是个图片 随波逐流binwalk一下分离得到一个zip&#xff0c;解压得到base_misc发现是zip 爆破得到密码 解压得到一个txt&#xff0c;将里面的…

word内容使用python替换

拥有一个固定的word文件&#xff0c;类似模板 比如写一个测试计划&#xff0c;大多数内容都是通用&#xff0c;只需要改改软件名称&#xff0c;人员等等&#xff0c;数量多起来的情况下就可以使用代码 # 导入 Document 类&#xff0c;用于处理 Word 文档 from docx import Do…

py语法基础理解

条件判断 只有if-else等我语句,Python不支持switch语句 单if语句 if 条件语句: 条件为真时执行的内容 if-else语句 if 条件语句: 条件为真时执行的内容 else: 条件为假时执行的内容 if-elif语句 else if if 条件语句1: 条件语句1为真时执行的内容 elif 条件语句…

SQL进阶知识:九、高级数据类型

今天介绍下关于高级数据类型的详细介绍&#xff0c;并结合MySQL数据库提供实际例子。 在MySQL中&#xff0c;高级数据类型主要用于处理复杂的数据结构&#xff0c;如JSON、XML和空间数据。这些数据类型提供了更强大的功能&#xff0c;可以满足现代应用程序对数据存储和处理的多…

Linux软硬链接和动静态库(20)

文章目录 前言一、软硬链接基本认知实现原理应用场景取消链接ACM时间 二、动静态库认识库库的作用 三、制作静态库静态库的打包静态库的使用 四、制作动态库动态区的打包动态库的链接与使用动态库的链接原理 总结 前言 我有款非常喜欢玩的游戏&#xff0c;叫做《饥荒》&#xf…

【鸿蒙HarmonyOS】深入理解router与Navigation

5. 路由 1.页面路由(router模式&#xff09; 1.概述 页面路由指的是在应用程序中实现不同页面之间的跳转&#xff0c;以及数据传递。 我们先明确自定义组件和页面的关系&#xff1a; 自定义组件&#xff1a;Component 装饰的UI单元&#xff0c;页面&#xff1a;即应用的UI…

Apache SeaTunnel:新一代开源、高性能数据集成工具

Apache SeaTunnel 是一款开源、分布式、高性能的数据集成工具&#xff0c;可以通过配置快速搭建数据管道&#xff0c;支持实时海量数据同步。 Apache SeaTunnel 专注于数据集成和数据同步&#xff0c;主要旨在解决数据集成领域的常见问题&#xff1a; 数据源多样性&#xff1a…

CF-Hero:自动绕过CDN找真实ip地址

CF-Hero&#xff1a;自动绕过CDN找真实ip地址 CF-Hero 是一个全面的侦察工具&#xff0c;用于发现受 Cloudflare 保护的 Web 应用程序的真实 IP 地址。它通过各种方法执行多源情报收集。目前仅支持Cloudflare的cdn服务查找真实ip&#xff0c;但从原理上来说查找方法都是通用的…

React-组件和props

1、类组件 import React from react; class ClassApp extends React.Component {constructor(props) {super(props);this.state{};}render() {return (<div><h1>这是一个类组件</h1><p>接收父组件传过来的值&#xff1a;{this.props.name}</p>&…

谈谈接口和抽象类有什么区别?

接口&#xff08;interface&#xff09;和抽象类&#xff08;abstract class&#xff09;都是 Java 中常用的“抽象”工具&#xff0c;用来定义类的规范和结构&#xff0c;但它们有一些本质的区别。下面我用一个简单明了的表格 说明来帮你理解&#xff1a; 对比点抽象类&…

使用Nacos 打造微服务配置中心

一、背景介绍 Nacos 作为服务注册中心的使用方式&#xff0c;同时 Nacos 还可以作为服务配置中心&#xff0c;用于集中式维护各个业务微服务的配置资源。 作为服务配置中心的交互流程图如下。 这样设计的目的&#xff0c;有一个明显的好处就是&#xff1a;有利于对各个微服务…

OpenCv高阶(十一)——物体跟踪

文章目录 前言一、OpenCV 中的物体跟踪算法1、均值漂移&#xff08;Mean Shift&#xff09;&#xff1a;2、CamShift&#xff1a;3、KCF&#xff08;Kernelized Correlation Filters&#xff09;&#xff1a;4、MIL&#xff08;Multiple Instance Learning&#xff09;&#xf…

声音分离人声和配乐base,vocals,drums -从头设计数字生命第6课, demucs——仙盟创梦IDE

demucs -n htdemucs --two-stemsvocals 未来之窗.mp3 demucs -n htdemucs --shifts5 之.mp3demucs -n htdemucs --shifts5 -o wlzcoutspl 未来之窗.mp3 伴奏提取人声分离技术具有多方面的重大意义&#xff0c;主要体现在以下几个领域&#xff1a; 音乐创作与制作 创作便利…

使用若依二次开发商城系统-4:商品属性

功能3&#xff1a;商品分类 功能2&#xff1a;商品品牌 功能1&#xff1a;搭建若依运行环境前言 商品属性功能类似若依自带的字典管理&#xff0c;分两步&#xff0c;先设置属性名&#xff0c;再设置对应的属性值。 一.操作步骤 1&#xff09;数据库表product_property和pro…

操作指南:vLLM 部署开源大语言模型(LLM)

vLLM 是一个专为高效部署大语言模型&#xff08;LLM&#xff09;设计的开源推理框架&#xff0c;其核心优势在于显存优化、高吞吐量及云原生支持。 vLLM 部署开源大模型的详细步骤及优化策略&#xff1a; 一、环境准备与安装 安装 vLLM 基础安装&#xff1a;通过 pip 直接安装…

32.768kHz晶振详解:作用、特性及与其他晶振的区别

一、32.768kHz晶振的核心作用 实时时钟&#xff08;RTC&#xff09;驱动&#xff1a; 提供精确的1Hz时钟信号&#xff0c;用于计时功能&#xff08;如电子表、计算机CMOS时钟&#xff09;。 分频公式&#xff1a; 1Hz 32.768kHz / 2^15&#xff08;通过15级二分频实现&#x…

第3讲、大模型如何理解和表示单词:词嵌入向量原理详解

1. 引言 大型语言模型&#xff08;Large Language Models&#xff0c;简称LLM&#xff09;如GPT-4、Claude和LLaMA等近年来取得了突破性进展&#xff0c;能够生成流畅自然的文本、回答复杂问题、甚至编写代码。但这些模型究竟是如何理解人类语言的&#xff1f;它们如何表示和处…