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.pswp.cn/bicheng/78399.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/78399.shtml
英文地址,請注明出處:http://en.pswp.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;它們如何表示和處…