当前位置: 首页 > news >正文

河南萌新联赛2025第五场 - 信息工程大学

信息工程大学的出题依旧对待小白友好~在这里感谢出题方,但是你自己看看A题阴不阴😭

这次的题目没有很深奥的算法知识,大多都是一些模拟和常见的基础算法以及数论中的内容,所以我会认真对待这次的题目,补题会持续更新~

本场比赛传送门:河南萌新联赛2025第(五)场:信息工程大学”_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ

首当其冲的就是签到题了:

A - 宇宙终极能量调和与多维时空稳定性验证下的基础算术可行性研究

看到题目的我小脑都萎缩了,怀着反常的心思断定这道题就是签到题,点进去之后...哇,小脑变成大脑了!出题人你自己看看阴不阴😄:

这道题把我的思绪拉回到了高考做语文阅读理解的时候,读完一遍题发现读了一遍题,😄,但是看到别人一顿酷酷过,我第一眼就锁定了异或符号,直接将1 ^ 1的结果交了上去,没错!WA了,后来就放弃这一题了,谁爱写谁写,再之后看到更多的人过了,我还是咬咬牙又读了一遍题,终于发现了一些端倪:666经典线性叠加,我怀着幼儿园都会的1 + 1交了上去,过了...过的很窝囊

后来看题解,我想着出题人会给我一些说法,知道我看到了:

?我请问呢,全剧终。代码就不粘贴了,直接 cout << “ 2 ” << endl; 即可

接下来看B题:

B - 中位数

题目传送门:B-中位数_河南萌新联赛2025第(五)场:信息工程大学”

这道题还是朴实无华的简单思维题,只需要稍微动动脑就能发现,每次删除的是中位数,也就是说,不管对哪个长度为3的序列操作,最终都会剩下一个最小值和一个最大值,所以我们只需要对原数组进行排序,然后求最大值和最小值的中位数即可,不管了,直接交:

怎么错了?看一眼数据范围,哦哦哦哦哦!还有1的时候的特判!加上特判:

赛时代码如下:

// Problem: 中位数
// Contest: NowCoder
// URL: https://ac.nowcoder.com/acm/contest/115567/B
// Memory Limit: 512 MB
// Time Limit: 2000 ms
// 
// Powered by CP Editor (https://cpeditor.org)#include <bits/stdc++.h>
using namespace std;
#define int long long 
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define pii pair<int,int>
#define fi first
#define se second
#define YES cout<<"YES"<<endl;
#define NO cout<<"NO"<<endl;
const int INF = 0x3f3f3f3f;
const int inf = 1e18; void solve()
{int n;cin>>n;vector<int> a(n+1);if(n == 1){cout<<n<<endl;return ;}for(int i=1;i<=n;i++) cin>>a[i];sort(a.begin() + 1,a.end());int ans = a[1] + a[n];ans /= 2;cout<<ans<<endl;//	cout<<fixed<<setprecision(x)<< ; 
}signed main()// Don't forget pre_handle!
{IOSint T=1;
//	cin>>T;while(T--) solve(); return 0;
} 

C - 中位数 + 1

题目链接:C-中位数+1_河南萌新联赛2025第(五)场:信息工程大学”

这道题是很熟悉的一道题,通过每次加进来的一个数,然后计算出该数组中的中位数,说白了就是求动态中位数,直接套模版,用一个名为对顶堆的数据结构,对奇数和偶数情况进行判断,过过过

// Problem: 中位数+1
// Contest: NowCoder
// URL: https://ac.nowcoder.com/acm/contest/115567/C
// Memory Limit: 512 MB
// Time Limit: 2000 ms
// 
// Powered by CP Editor (https://cpeditor.org)#include <bits/stdc++.h>
using namespace std;
#define int long long 
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define pii pair<int,int>
#define fi first
#define se second
#define YES cout<<"YES"<<endl;
#define NO cout<<"NO"<<endl;
const int INF = 0x3f3f3f3f;
const int inf = 1e18; void solve()
{priority_queue<int> da;//dapriority_queue<int,vector<int>,greater<int>> xiao;//xiaoint n;cin>>n;for(int i=1;i<=n;i++){int x;cin>>x;da.push(x);if(da.size() == xiao.size() + 2){int t = da.top();da.pop();xiao.push(t);}while(xiao.size() && da.top() > xiao.top()){int t = da.top();da.pop();int tt = xiao.top();xiao.pop();da.push(tt);xiao.push(t);}if(i & 1) cout<<da.top()<<' ';else if(da.size() && xiao.size()) cout<<(da.top() + xiao.top())/2<<' ';}
//	cout<<fixed<<setprecision(x)<< ; 
}signed main()// Don't forget pre_handle!
{IOSint T=1;
//	cin>>T;while(T--) solve(); return 0;
} 

F - 中位数 + 4

题目链接:F-中位数+4_河南萌新联赛2025第(五)场:信息工程大学”

这道题就是将给定的数转化为k进制,然后判断有几个后导零即可,直接用字符串模拟即可。

// Problem: 中位数+4
// Contest: NowCoder
// URL: https://ac.nowcoder.com/acm/contest/115567/F
// Memory Limit: 512 MB
// Time Limit: 2000 ms
// 
// Powered by CP Editor (https://cpeditor.org)#include <bits/stdc++.h>
using namespace std;
#define int long long 
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define pii pair<int,int>
#define fi first
#define se second
#define YES cout<<"YES"<<endl;
#define NO cout<<"NO"<<endl;
const int INF = 0x3f3f3f3f;
const int inf = 1e18; 
string to(int n,int k)
{string ans;int t = k;while(n){string t = to_string(n%k);n /= k;ans += t;}reverse(ans.begin(),ans.end());return ans;
}
void solve()
{int n,k;cin>>n>>k;string s = to(n,k);int cnt = 0;for(int i=s.size()-1;i>0;i--){if(s[i] == '0') cnt ++;else break;}cout<<cnt<<endl;
//	cout<<fixed<<setprecision(x)<< ; 
}signed main()// Don't forget pre_handle!
{IOSint T=1;
//	cin>>T;while(T--) solve(); return 0;
} 

G - 简单题

题目链接:G-简单题_河南萌新联赛2025第(五)场:信息工程大学”

幸亏我会三阶行列式,将三阶行列式算出来之后就是1 1 2 3,相信一直刷算法的小伙伴对这个序列都不陌生吧,这不就是斐波那契数列吗??!,然后通过打表找出斐波那契数列的和的奇偶性的变化是奇偶偶奇偶偶奇偶偶奇...所以我们只需要对n--,然后对3取模就行了。

// Problem: 简单题
// Contest: NowCoder
// URL: https://ac.nowcoder.com/acm/contest/115567/G
// Memory Limit: 2048 MB
// Time Limit: 2000 ms
// 
// Powered by CP Editor (https://cpeditor.org)#include <bits/stdc++.h>
using namespace std;
#define int long long 
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define pii pair<int,int>
#define fi first
#define se second
#define YES cout<<"YES"<<endl;
#define NO cout<<"NO"<<endl;
const int INF = 0x3f3f3f3f;
const int inf = 1e18; void solve()
{// int n;cin>>n;// int sum;n--;// sum = (1 + n) * n / 2;// sum ++;// cout<<sum % 2<<endl;// vector<int> a(20,0);// a[1] = 1;// a[2] = 1;// a[3] = 2;// for(int i=4;i<=17;i++) a[i] = a[i-1] + a[i-2];// for(int i=1;i<=17;i++) a[i] = a[i] + a[i-1];// for(int i=1;i<=17;i++) cout<<a[i] % 2<<endl;int n;cin>>n;if(n == 1){cout<<1<<endl;}else{n--;if(n % 3 == 0) cout<<1<<endl;else cout<<0<<endl;}//	cout<<fixed<<setprecision(x)<< ; 
}signed main()// Don't forget pre_handle!
{IOSint T=1;
//	cin>>T;while(T--) solve(); return 0;
} 

K - 狂飙追击

题目链接:K-狂飙追击_河南萌新联赛2025第(五)场:信息工程大学”

这道题唯一需要注意的就是题目中说的m是动态变化的,不是根据初始的位置而确定的(就是因为这个导致错了好几次),明白这里之后就很好想了,我们只需要用一个搜索都能出来,这里用BFS和DFS都可以,我下面就以DFS来举例子吧:

// Problem: 狂飙追击
// Contest: NowCoder
// URL: https://ac.nowcoder.com/acm/contest/115567/K
// Memory Limit: 512 MB
// Time Limit: 2000 ms
// 
// Powered by CP Editor (https://cpeditor.org)#include <bits/stdc++.h>
using namespace std;
#define int long long 
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define pii pair<int,int>
#define fi first
#define se second
#define YES cout<<"YES"<<endl;
#define NO cout<<"NO"<<endl;
const int INF = 0x3f3f3f3f;
const int inf = 1e18; 
int endx,endy,dis = inf;
bool f = 0;
void dfs(int x,int y,int st)
{if(x > endx || y > endy) return ;if(x == endx && y == endy){f = 1;dis = min(dis,st);return ;}int m = max(x,y);int tx = x + m;int ty = y + m;dfs(tx,y,st + 1);dfs(x,ty,st + 1);
}
void solve()
{int a,b;cin>>a>>b>>endx>>endy;dfs(a,b,0);if(f) cout<<dis<<endl;else cout<<"-1"<<endl;
//	cout<<fixed<<setprecision(x)<< ; 
}signed main()// Don't forget pre_handle!
{IOSint T=1;
//	cin>>T;while(T--) solve(); return 0;
} 

I - Re:从零开始的近世代数复习(easy)

题目链接:I-Re:从零开始的近世代数复习(easy)_河南萌新联赛2025第(五)场:信息工程大学”

这道题一开始看到节点之间有这依赖的顺序关系,以为这个是用拓扑排序写的,后来读完题之后发现是一个树形结构,所以这道题可以用倍增优化LCA来写!但是赛时改了好几次都错了,没办法只能在赛后补题了。

// Problem: Re:从零开始的近世代数复习(easy)
// Contest: NowCoder
// URL: https://ac.nowcoder.com/acm/contest/115567/I
// Memory Limit: 512 MB
// Time Limit: 2000 ms
// 
// Powered by CP Editor (https://cpeditor.org)#include <bits/stdc++.h>
using namespace std;
#define int long long 
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define pii pair<int,int>
#define fi first
#define se second
#define YES cout<<"YES"<<endl;
#define NO cout<<"NO"<<endl;
const int INF = 0x3f3f3f3f;
const int inf = 1e18; 
const int N = 1e5 + 10;
vector<int> e[N],p[N];
int n,ans = 0;
vector<int> deep(N,0);
int fu[N][35],g[N][35];
void dfs(int x,int fa)
{deep[x] = deep[fa] + 1;fu[x][0] = fa;for(int i=1;i<=25;i++){fu[x][i] = fu[fu[x][i-1]][i-1];g[x][i] = g[fu[x][i-1]][i-1] + g[x][i-1];}for(auto &i : e[x]) dfs(i,x);
}
int LCA(int x,int y)
{if(deep[x] < deep[y]) swap(x,y);for(int i=25;i>=0;i--){if(deep[fu[x][i]] >= deep[y])ans += g[x][i],x = fu[x][i];}if(x == y) return x;for(int i=25;i>=0;i--){if(fu[x][i] != fu[y][i]){ans += g[x][i] + g[y][i];x = fu[x][i];y = fu[y][i];}}ans += g[x][0] + g[y][0];return fu[x][0];
}
void solve()
{int n;cin>>n;for(int i=1;i<=n;i++) cin>>g[i][0];for(int i=1;i<n;i++) {int u,v;cin>>u>>v;e[u].push_back(v);}dfs(1,0);int q;cin>>q;while(q--){int k;cin>>k;int x,y;cin>>x>>y;ans = g[1][0];int lca = LCA(x,y);if(lca != 1)LCA(lca,1);cout<<ans<<endl;}
//	cout<<fixed<<setprecision(x)<< ; 
}signed main()// Don't forget pre_handle!
{IOSint T=1;
//	cin>>T;while(T--) solve(); return 0;
} 

http://www.xdnf.cn/news/1291267.html

相关文章:

  • IDEA创建一个VUE项目
  • C# 微软依赖注入 (Microsoft.Extensions.DependencyInjection) 详解
  • 数据分析项目----幸福感挖掘和预测
  • Python实战教程:PDF文档自动化编辑与图表绘制全攻略
  • PyTorch生成式人工智能——基于Transformer实现文本转语音
  • SeaTunnel MCP Server 入选《中国信通院开源商业产品及企业典型案例集(2025)》
  • 袖珍手持气象仪的用途
  • linux_网络层-ip协议
  • 开源日志log4cplus—调用MultiByteToWideChar提示未定义,CP_UTF8未定义定原因有哪些,如何改进?
  • 【安卓,问题记录】ImageView 在布局顺序上位于 Button 上方,却出现图像内容被 Button 遮挡
  • 北京JAVA基础面试30天打卡09
  • ELK开启安全策略
  • 【递归、搜索与回溯算法】穷举、暴搜、深搜、回溯、剪枝
  • String里常用的方法
  • w481社区老人健康信息管理系统的设计与实现
  • 5.语句几个分类
  • BGE:智源研究院的通用嵌入模型家族——从文本到多模态的语义检索革命
  • 开源WAF新标杆:雷池SafeLine用语义分析重构网站安全边界
  • 【C#】利用数组实现大数数据结构
  • 银发经济时代:科技赋能养老,温情守护晚年,让老人不再孤独无助
  • LeetCode 面试经典 150_数组/字符串_整数转罗马数字(18_12_C++_中等)(模拟)(对各位进行拆解)
  • STM32HAL 快速入门(六):GPIO 输入之按键控制 LED
  • JMeter 测试 WebSocket 接口的详细教程
  • HarmonyOS NDK的JavaScript/TypeScript与C++交互机制
  • 实战多屏Wallpaper壁纸显示及出现黑屏问题bug分析-学员作业
  • 从0开始配置conda环境并在PyCharm中使用
  • 基于Apache Flink的实时数据处理架构设计与高可用性实战经验分享
  • Flink中的窗口
  • 解决程序连不上RabbitMQ:Attempting to connect to/access to vhost虚拟主机挂了的排错与恢复
  • Windows也能用!Claude Code硬核指南