2025年广州大学程序设计竞赛新生赛

news/2026/1/16 20:23:49/文章来源:https://www.cnblogs.com/accuber/p/19493908

2025年广州大学程序设计竞赛新生赛

A   魔法门禁试炼

比较大小,难度一星

#include <iostream>
using namespace std;
int main()
{int a,b,c,d;cin>>a>>b>>c>>d;if(a<d&&b==c)cout<<"YES";elsecout<<"NO";return 0;
}

B   漫步大地的游医

把各药材收集起来后,变成多重背包dp(类似5. 多重背包问题 II - AcWing题库),时间复杂度 \(O(n*m)\) ,难度3星

#include <bits/stdc++.h>
#define pb push_back
#define PII pair<int,int>
#define fi first
#define se second
using namespace std;
const int N=2e5+10,M=2010;
const int inf=1e9+7;
int n,m,k;
int a[N];
int v[N];
int dp[N];
void solve(){cin>>n>>m>>k;map<int,int>mp;for(int i=1;i<=n;i++){int p;cin>>p;mp[p]++;}for(int i=1;i<=m;i++)cin>>v[i];for(auto it:mp){for(int i=k;i>=0;i--){for(int j=min(it.se,i);j>=1;j--){int tmp=log(j+1)/log(2);dp[i]=max(dp[i],dp[i-j]+tmp*v[it.fi]);}}}cout<<dp[k]<<endl;
}signed main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int _=1;// cin>>_;while(_--)solve();return 0;
}

C   归零者

模拟题,从左往右依次把1覆盖即可,难度一星

#include <bits/stdc++.h>
using namespace std;int main()
{int n;cin>>n;//cout<<n<<endl;string s;// cin>>s;int count=0;cin>>s;int t=0;while(t<n){if(s[t]=='1'){count++;t+=2;//cout<<t<<endl;}else if(s[t]=='0')t++;}cout<<count;return 0;
}

G   字符串GCD

输出相同的字母即可,难度一星

#include <bits/stdc++.h>
using namespace std;int main(){ string str1,str2;cin>>str1>>str2;for(int i=0;i<2;i++){for(int j=0;j<2;j++){if(str1[i]==str2[j]){cout<<str1[i];continue;}}}return 0;
}

H   学士的书签

比较大的模拟,难度2星

#include <bits/stdc++.h>
#define pb push_back
#define PII pair<int,int>
#define fi first
#define se second
#define int long long
using namespace std;
const int N=5e6+10,M=2010;
int n,m,k;
int a[N];
queue<int>q[3],p[3];
void solve(){cin>>n;int sum=n*(n+1)/2;if(sum%3==0){cout<<-1<<endl;return ;}for(int i=1;i<=n;i++){q[i%3].push(i);p[i%3].push(i);}vector<int>ans;ans.pb(q[1].front());q[1].pop();int idx=1;for(int i=2;i<=n;i++){if(idx==1){if(q[0].size()){ans.pb(q[0].front());q[0].pop();}else if(q[1].size()){ans.pb(q[1].front());q[1].pop();idx=2;}else {break;}}else {if(q[0].size()){ans.pb(q[0].front());q[0].pop();}else if(q[2].size()){ans.pb(q[2].front());q[2].pop();idx=1;}else {break;}}}if(ans.size()==n){for(auto it:ans){cout<<it<<" ";}return;}ans.clear();ans.pb(p[2].front());p[2].pop();idx=2;for(int i=2;i<=n;i++){if(idx==1){if(p[0].size()){ans.pb(p[0].front());p[0].pop();}else if(p[1].size()){ans.pb(p[1].front());p[1].pop();idx=2;}else {break;}}else {if(p[0].size()){ans.pb(p[0].front());p[0].pop();}else if(p[2].size()){ans.pb(p[2].front());p[2].pop();idx=1;}else {break;}}}if(ans.size()==n){for(auto it:ans){cout<<it<<" ";}return;}cout<<-1<<endl;
}signed main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int _=1;// cin>>_;while(_--)solve();return 0;
}

I   卡牌游戏 2

猜结论+模拟,难度两星
无交集双方都为0,有交集一定一方得到总分,具体谁是赢家需要模拟。

#include <bits/stdc++.h>
#define pb push_back
#define PII pair<int,int>
#define fi first
#define se second
#define int long long
using namespace std;
const int N=1e6+10,M=2010;
int n,m,k;
int a[N];
int b[N];
bool st[N];
bool st2[N];
void solve(){cin>>n>>m;int res=0;for(int i=1;i<=n;i++)cin>>a[i],st[a[i]]=1;for(int i=1;i<=m;i++){cin>>b[i];if(st[b[i]]){res+=b[i];st2[b[i]]=1;}}if(res==0){cout<<"0 0"<<endl;return ;}queue<int>q1,q0,p1,p0;for(int i=1;i<=n;i++){if(st2[a[i]]){q1.push(a[i]);}else q0.push(a[i]);}for(int i=1;i<=m;i++){if(st2[b[i]]){p1.push(b[i]);}else p0.push(b[i]);}int idx=1;while(q0.size()+q1.size()&&p0.size()+p1.size()){if(idx==1){if(q0.size()==0){cout<<0<<" "<<res<<endl;return;}q0.pop();idx=2;}else {if(p0.size()==0){cout<<res<<" "<<0<<endl;return;}p0.pop();idx=1;}}if(idx==1){cout<<0<<" "<<res<<endl;}else {cout<<res<<" "<<0<<endl;}}signed main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int _=1;// cin>>_;while(_--)solve();return 0;
}

J   星流萤

先去看K题!!!

bfs,难度4星;加练 P2802 回家 - 洛谷难度3星

熟练之后来进阶:P8673 [蓝桥杯 2018 国 C] 迷宫与陷阱 - 洛谷,难度4星

#include <bits/stdc++.h>
#define pb push_back
#define PII pair<int,int>
#define fi first
#define se second
using namespace std;
const int N=1e6+10,M=2010,inf=0x3f3f3f3f;
int n,m,k;
int dx[]={0,0,1,-1},dy[]={-1,1,0,0};
int hm[]={1,0,3,2};
bool st[M][M];
int dist[M][M][4];
struct nod{int x,y;int w,b;int cnt;bool operator<(const nod&u)const{return cnt>u.cnt;}
};
void bfs(){priority_queue<nod>qq;for(int i=0;i<4;i++){qq.push({1,1,i,hm[i],0});dist[1][1][i]=0;}while(qq.size()){auto tmp=qq.top();qq.pop();int x=tmp.x, y=tmp.y;int w=tmp.w, b=tmp.b;// cout<<x<<" "<<y<<" "<<w<<" "<<b<<endl;// cout<<dist[x][y]<<endl;for(int i=0;i<4;i++){if(i==b)continue;int tx=x+dx[i];int ty=y+dy[i];int cnt=tmp.cnt;if(i!=w)cnt++;if(tx<1||tx>n||ty<1||ty>m||st[tx][ty])continue;if(cnt<dist[tx][ty][i]){dist[tx][ty][i]=cnt;qq.push({tx,ty,i,hm[i],cnt});}}}int minv=inf;for(int i=0;i<4;i++)minv=min(minv,dist[n][m][i]);cout<<minv<<endl;}
void solve(){memset(dist,0x3f,sizeof dist);cin>>n>>m;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)cin>>st[i][j];bfs();}signed main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int _=1;// cin>>_;while(_--)solve();return 0;
}

K   位运算2

bfs,难度2星
课程:AcWing 844. 走迷宫 - AcWing
加练:P1135 奇怪的电梯 - 洛谷

#include <bits/stdc++.h>
#define pb push_back
#define PII pair<int,int>
#define fi first
#define se second
#define LL long long
using namespace std;
const int N=5e6+10,M=2010;
const LL mod=1e9+7;
int n,m,k;
int a[N];void solve(){cin>>n>>m>>k;set<int>st;queue<int>qq;qq.push(n);st.insert(n);while(qq.size()){int tmp=qq.front();qq.pop();if(tmp==k){cout<<"YES"<<endl;return;}int idx=tmp|m;if(st.find(idx)==st.end()){st.insert(idx);qq.push(idx);}idx=tmp&m;if(st.find(idx)==st.end()){st.insert(idx);qq.push(idx);}idx=tmp^m;if(st.find(idx)==st.end()){st.insert(idx);qq.push(idx);}}cout<<"NO"<<endl;
}signed main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int _=1;// cin>>_;while(_--)solve();return 0;
}

L   最大平均数

dp,需考虑继承上一长度的值,难度3星

#include <bits/stdc++.h>
#define int long long
#define pb push_back
#define PII pair<int,int>
#define fi first
#define se second
using namespace std;
const int N=2e5+10,M=5010;
const int inf=1e9+7;
int n,m,k;
int a[M];
int dp[M][M];
void solve(){cin>>n;for(int i=1;i<=n;i++)cin>>a[i],a[i]+=a[i-1];for(int len=2;len<=n;len++){for(int i=1;i+len-1<=n;i++){int j=i+len-1;dp[i][j]=max(dp[i+1][j],dp[i][j-1]);int sum=a[j]-a[i-1];dp[i][j]=max(dp[i][j],sum/len);}}int res=0;for(int i=1;i<n;i++)for(int j=i+1;j<=n;j++)res+=dp[i][j];cout<<res<<endl;
}signed main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int _=1;// cin>>_;while(_--)solve();return 0;
}

D   小学一年级地理

只用维护两个数组,分别记录一个上升或下降段的左端点就可以进行判断了

#include <bits/stdc++.h>
#define int long long
#define PII pair<int,int>
#define pb push_back
#define vvi vector<vector<int>>
#define fi first
#define se second
#define endl '\n' 
using namespace std;
const int N=1e6+10,M=2010,mod=100003;
const int INF=0x3f3f3f3f;
int dx[]={-1,1,0,0},dy[]={0,0,-1,1};
int n,m,k;
int a[N];
int up[N],down[N];
/*
up[i]表示在第i个数前面,维持上升趋势的最底下的数的位置
换一种说法,就是该(第i个数所在的)上升段的左端点的位置
*/
//down[i]表示在第i个数前面,维持下降趋势的最底下的数的位置,与up数组的效果类似
void solve(){cin>>n>>m;for(int i=1;i<=n;i++)cin>>a[i];up[1]=down[1]=1;for(int i=2;i<=n;i++){if(a[i]<a[i-1]){down[i]=down[i-1];up[i]=i;}else {down[i]=i;up[i]=up[i-1];}//cout<<up[i]<<" "<<down[i]<<endl;}while(m--){int l,r;cin>>l>>r;//l和r在同一个上升段上if(up[l]==up[r])cout<<"u"<<endl;//l和r在同一个下降段上else if(down[l]==down[r])cout<<"d"<<endl;/*通过r先找到峰顶:down[r]通过峰顶找山底:up[down[r]]如果山地的位置小于等于l,说明这是一个山峰*/else if(up[down[r]]<=l)cout<<"t"<<endl;/*通过r先找到谷底:up[r]通过谷底找山顶:down[up[r]]如果山地的位置小于等于l,说明这是一个山谷*/else if(down[up[r]]<=l)cout<<"v"<<endl;else cout<<"?"<<endl;}}signed main(){std::ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int _=1;//cin>>_;while(_--) solve();return 0;
}

F   时光终逝,盛宴永存

题目要求将G视为一棵二叉树,意味着在该连通分量中 s 的度数最大为 2。对于一已经选择的连通分量 G,如果存在节点 s' 的度数为 3,通过舍弃 s' 的一条边所连接的整个连通分量,令s'成为满足条件的根节点时,答案一定会劣于直接选择被舍弃的连通分量上的一个叶子节点作为根节点。因此,答案的连通分量应当选择森林中一棵完整的树,并挑选一个度数不为 3 的最小节点作为根节点。
遍历整个图即可,复杂度 O(n)

#include <bits/stdc++.h>
#define pb push_back
#define int long long
#define endl '\n' 
using namespace std;
const int N=1e6+10,M=2010,inf=0x3f3f3f3f3f3f3f3f;
int n,m,k;
int a[N],d[N];
int h[N],ne[N],e[N],idx;
int vis[N];
void add(int a,int b){e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}
int bfs(int p){queue<int>qq;qq.push(p);vector<int>tr;tr.pb(p);vis[p]=1;while(qq.size()){int tmp=qq.front();qq.pop();for(int i=h[tmp];~i;i=ne[i]){int j=e[i];if(vis[j])continue;vis[j]=1;qq.push(j);tr.pb(j);}}int mina=inf,sum=0;for(auto i:tr){sum+=a[i];if(d[i]<=2)mina=min(mina,a[i]);}return 2*sum-mina;}
void solve(){memset(h,-1,sizeof h);cin>>n>>m;for(int i=1;i<=n;i++)cin>>a[i];while(m--){int u,v;cin>>u>>v;add(u,v);add(v,u);d[u]++,d[v]++;}int maxv=0;for(int i=1;i<=n;i++)if(!vis[i])maxv=max(maxv,bfs(i));cout<<maxv<<endl;
}signed main(){std::ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int _=1;//cin>>_;while(_--) solve();return 0;
}

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

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

相关文章

2026优质GEO国际版源码哪家好?跨境适配优选 - 源码云科技

2026优质GEO国际版源码哪家好?跨境适配优选2026年AI营销风口下,GEO优化已然成为企业跨境获客的核心抓手,而优质的GEO优化源码更是决定服务效果与盈利空间的关键。随着AI搜索场景不断拓展,企业对GEO优化系统的全域适…

放假观察记录

放假le 想写点什么,但是又没什么好说的,起码放假了还是挺开心的 先来简单规划一下要补的题吧:新生赛的 \(J\) 和 \(H\) 题 第 \(40\) 次 \(CCF\) \(cacc\) 的 \(T3\) 和 \(T4\) \(cacc\) 的工程题 洛谷上做的一堆杂…

2026年知名的石墨防腐涂料,玻璃鳞片防腐涂料,耐高温防腐涂料厂家选型参考指南 - 品牌鉴赏师

引言在 2026 年,随着工业的快速发展,石墨防腐涂料、玻璃鳞片防腐涂料、耐高温防腐涂料等在众多领域的应用愈发广泛,市场上相关厂家众多,如何选择优质的厂家成为众多用户面临的难题。为了给广大用户提供一个客观、公…

基于西门子plc 博图1200 基于西门子plc的药片自动装瓶(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于西门子plc 博图1200 基于西门子plc的药片自动装瓶(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码 机控制系统设计 1.仿真报告&#xff08;1.5W字&#xff09; 2.IO表 3.接线图

基于plc立体车库设计(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于plc立体车库设计(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码 西门子plcs7-1200&#xff0c;带程序仿真、报告&#xff08;过1w&#xff09;、硬件原理图和cad。 功能&#xff1a;地面层七个停车位升降&#xff0c;四个…

【C++】并查集的原理与使用 - 教程

【C++】并查集的原理与使用 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&…

[特殊字符] 深入理解 Android 输入设备配置:从键盘布局文件到用户体验

作者&#xff1a;你的 Android 老朋友 时间&#xff1a;2026年1月7日 一句话核心&#xff1a;当你按下键盘上的按键时&#xff0c;Android 系统是如何知道该显示什么字符的&#xff1f;本文将带你深入了解这个神奇的过程&#xff01;&#x1f31f; 引言&#xff1a;你是否想过&…

基于cisco的企业网(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于cisco的企业网(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码 IP论文 基于cisco的企业网 实物报告 均可ping通

2026年专业的草坪灯,景观灯,景观灯厂家选型决策榜单 - 品牌鉴赏师

引言在 2026 年的当下,随着城市建设的不断推进,专业的草坪灯、景观灯在城市景观打造、照明亮化等方面发挥着愈发重要的作用。为了给广大消费者和相关工程采购方提供科学、公正、客观的景观灯厂家选型参考,我们依据多…

解决本地访问远程桌面端口被拦截

本地访问远程服务器上的服务,访问http:xxx:8080端口不通,解决思路和排查流程如下: 1. 第一步:确认 Java 服务是否真的启动且监听 8080 端口(服务器本地验证) 这是最基础的前提 —— 如果服务没启动 / 监听端口错误,后续排查都无意义。 操作方法(在远程桌面的服务器上…

比话降AI使用教程:手把手教你5分钟把论文AI率降到10%以下

比话降AI使用教程&#xff1a;手把手教你5分钟把论文AI率降到10%以下 TL;DR 比话降AI是专门针对知网AIGC检测系统设计的降AI工具&#xff0c;使用10亿真实论文数据训练&#xff0c;能将AI率稳定降至10%-15%。本教程将从注册、设置到最终降重&#xff0c;一步步教你如何高效使…

世岩清上:以现代化企业展厅为战略支点,赋能企业高质量发展

在数字经济与体验经济深度融合的新时代&#xff0c;企业竞争已从单一的产品性能比拼&#xff0c;转向涵盖品牌认知、用户信任、文化认同与生态协同的系统性较量。在此背景下&#xff0c;传统“陈列式”展厅正加速向现代化、智能化、战略化的企业价值中枢演进。一座精心设计的现…

做一个微信小程序要多少钱?小程序商城制作一个需要多少钱 - 码云数智

小程序制作需要多少钱?全面解析开发方式与避坑指南 随着移动互联网的发展,小程序已成为企业数字化转型的重要工具。然而,很多创业者和中小企业主在初次接触小程序时,最关心的问题就是:“做一款小程序到底要花多少…

2026年可靠的锂电太阳能路灯,市政路灯,led路灯厂家采购推荐指南 - 品牌鉴赏师

引言在城市的发展进程中,路灯作为基础设施的重要组成部分,不仅为人们的出行提供了安全保障,更在一定程度上彰显了城市的文化与形象。随着科技的不断进步,路灯行业也迎来了新的发展机遇与挑战,市场上的路灯厂家众多…

用嘎嘎降处理DeepSeek生成的论文:从90%降到8%的详细步骤

用嘎嘎降处理DeepSeek生成的论文&#xff1a;从90%降到8%的详细步骤 TL;DR DeepSeek生成的论文AI率通常在80%-100%&#xff0c;直接交上去必挂。本文详解如何用「DeepSeek自改嘎嘎降AI精处理」的两步法&#xff0c;把AI率从90%降到8%&#xff0c;包含完整的操作步骤和Prompt模…

Docker讲解

2.Docker基础 接下来&#xff0c;我们一起来学习Docker使用的一些基础知识&#xff0c;为将来部署项目打下基础。具体用法可以参考Docker官方文档&#xff1a; https://docs.docker.com/ 2.1.常见命令 首先我们来学习Docker中的常见命令&#xff0c;可以参考官方文档&#…

小程序商城哪个平台好,码云数智,有赞,微盟对比2026 - 码云数智

许多企业想做小程序,却被高昂的开发成本和漫长的周期劝退。别让技术门槛成为你的绊脚石!SaaS 小程序制作平台专为解决这些难题而生,它用 “零代码” 的方式,让你像搭积木一样搭建商城。无需高薪聘请技术团队,几天…

步进电机驱动器:MCU + 分离元器件低成本驱动57步进电机全方案

目录 一、 核心设计原理 1. 分离式驱动器的核心逻辑 2. 关键技术原理 二、 硬件设计方案 1. 核心元器件选型&#xff08;适配 57 步进电机&#xff09; 2. 硬件电路设计&#xff08;两相 H 桥&#xff09; &#xff08;1&#xff09; 单路 H 桥电路&#xff08;A 相 / B…

SpringBoot Mocktio 单测 Mock Mapper

` @ExtendWith(MockitoExtension.class) class XxxxTeset { @InjectMocks private XxxService service = new XxxService(); @Mock private XxxMapper xxxMapper; @Mock private XxxDao xxxDao; @BeforeEach public vo…

用豆包/Kimi写论文的同学注意了,这款降AI工具救了我

用豆包/Kimi写论文的同学注意了&#xff0c;这款降AI工具救了我 TL;DR&#xff1a;用豆包、Kimi辅助写论文很方便&#xff0c;但直接交稿AI率肯定爆表。本文分享我用嘎嘎降AI处理豆包论文的经历&#xff0c;AI率从92%降到11%&#xff0c;3分钟搞定&#xff0c;救了我的毕业论文…