2026萌新联赛第二场--(河南农业大学)
2026萌新联赛第二场河南农业大学补题总结你的心有一道墙 但我发现一扇窗偶尔透出一丝暖暖的微光就算你有一道墙 我的爱会攀上窗台盛放打开窗你会看到悲伤融化这时候林俊杰就有疑问了本场预测难度划分为easyDHIeasy-midABMmidCEFGmid-hardKLhardJ这场比赛就有意思了榜单没有跟着难度走我打的时候也是这样。在赛时我的做题顺序大概是I H M B D L 很可惜啊L题确实是棋差一招啊。不过出题人把它放在mid-hard我是实在不太理解啊这题完全是可以补的呀。当然这个A题出题人把它放在easy-mid也有它的道理。但是在赛时谁看到像语文课文一样的题会想到是一个简单的模拟题呢况且还很有可能读不懂题目(我就是哈语文不好理解不了题意)。当然了奉劝大家在有时间的情况下还是得多卡看看其他的题万一你漏掉了一个能做的只是当时不想做那就太可惜了。题目链接接下来废话不多说开始讲题首先是签到题I题这题就是说让我们取一个右指针然后遍历的时候看右指针会不会移动移动条件就是ia[i]-1ans(右指针)AC代码int n; cinn; vectorint a(n1); for(int i1;in;i) cina[i]; int r1; for(int i1;ir;i) { int shuia[i]-1; if(shun) rn; else rmax(r,shu); } coutrendl;HH题这个题是比上一题还简单的签到题我们对于数组每一个数向上取整累加在一起输出就行了。int n,x,y; cinnxy; vectorint a(n); for(int i0;in;i) cina[i]; int ans0; if(x0||y0){ NO return; } int shumin(x,y); for(int i0;in;i){ ans((a[i]shu-1)/shu); } YES; coutansendl;M题这个M题说实话说的那个多我在赛时是压根不知道它在讲什么但是我们通过看这个题目给的实例就基本上能看个半懂然后根据下面的样例来分析就知道它讲的是啥了。就是一个数组压缩111就压缩成[1 3]也就是3个1那么它让我们输出第k个就很简单了我们把这个数组还原再输出第k个就行了int n; cinn; vectorint v(n1),l(n1); for(int i1;in;i) cinv[i]l[i]; int T; cinT; vectorint ans; while(T--) { int num; cinnum; int shu0; for(int i1;in;i) { if(shul[i]num){ ans.push_back(v[i]); break; }else{ shul[i]; } } } for(int i0;ians.size();i) coutans[i]endl;B题B题的思路就是让这个数求和嘛我们看这个数据很大所以暴力肯定是超时的所以我们就得想一个方法给它优化一下我们不难想到一个数除以一个数等于1的会有很多数(因为向下取整嘛)然后我们就可以利用这个性质来把这个过程给它截出来比如说一个数除以7 8 9都等于1那么我们就把这个7找出来把这个9找出来然后9-71就是这段长度的长31就表示了这段长的和它就可以大大降低我们的时间复杂度这个思路在赛时想了挺久的导致这个代码写成了屎山代码然后在赛后才知道这个思想是分块思想这题还是一个模板题优化的代码十分之简短相比之下我的屎山代码真的是丑爆了赛时ac代码// Problem: 不同的商 // Contest: NowCoder // URL: https://ac.nowcoder.com/acm/contest/138554/B // Memory Limit: 1024 MB // Time Limit: 2000 ms // author世间 // Date2026-07-27 13:24:51 #includebits/stdc.h using namespace std; #define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0) #define endl \n #define int long long #define pii pairint,int #define fi first #define se second #define YES coutYESendl; #define NO coutNOendl; int ksm(int a, int b, int p) { int res 1; while (b) { if (b 1) res res * a % p; a a * a % p; b 1; } return res; } void solve() { int x,y; cinxy; if(x1){ cout1endl; return; } if(y1){ coutxendl; return; } int ansx; if(yx){ yx; int cnt2; while(1){ int shu1x/cnt; if(cnty){ ansshu1; break; } int cntr(x/shu1)1; if(cntry) cntry1; int num(cntr-cnt)*shu1; ansnum; cntcntr; if(cnty) break; // coutcnt shu1 cntr numendl; } coutansendl; }else{ int cnt2; while(1) { int shu1x/cnt; if(cnty) { ansshu1; break; } int cntr(x/shu1)1; if(cntry) cntry1; int num(cntr-cnt)*shu1; ansnum; cntcntr; // coutansendl; if(cnty) break; } coutansendl; } // coutfixedsetprecision(x) } signed main() { IOS; int _1; // cin_; while(_--) solve(); return 0; }优化代码int x,y;cinxy; int an0; if(yx) yx; for(int l1;ly;l){ int rx/(x/l); an(x/l)*(r-l1); lr; } coutanendl;D题这个题本来看到三维切割这肯定得用到很多算法什么前缀和什么差分什么动态啊让我很头疼所以这个题目我在看了一眼只后果断放弃但是回过头看了一下发现它的数据特别小我们暴力打一遍直接救过了。暴力思路就是三维数组三层循环没这里就不过多解释了。AC代码呈上int w,x,h; cinwxh; int q; cinq; int answ*x*h; int a[30][30][30]{0}; while(q--) { int x1,y1,z1,x2,y2,z2; cinx1y1z1x2y2z2; for(int ix1;ix2;i) { for(int jy1;jy2;j) { for(int kz1;kz2;k) { if(a[i][j][k]0){ ans--; a[i][j][k]1; } } } } } coutansendl;A题这个题我在赛时也是直接放弃了文字也是直接劝退主包啊但是这题我们如果理解了题目就很好做数据给的也很少了我们可以直接暴力模拟就可以过。题目大意我们在(0,0)然后我们不会攻击但是我们有一个范围在这个范围是我们的领域我们的棋子会暴击就是x从0-4y从-2-2在这里面我们的棋子会造成基础攻击乘以系数4的伤害在外面的棋子只会造成基础攻击乘以2的伤害。然后输入几组坐标表示外面初始棋子的位置。然后再输入几组坐标这几组坐标有限定条件就是如果在我们的领域内的话我们可以观察它的上下左右有没有棋子要是没有的话我们可以在它的其上下左右都放上一个棋子但是如果我们这一轮放置的棋子在领域外面就没有这个性质。然后外面再输入m个坐标这m个坐标是m个敌人它的位置在哪个棋子的领域内棋子就会爆炸造成伤害(棋子的领域题目i也说了是一个菱形其实在后面我们可以推出来是abs(x差)abs(y差)2就是在它的领域)。然后我们输出这个伤害。好吧其实我解释的也有点过于长了不过没办法这题出的长那它的规则也就有些多只要理解了就很好写了你如果理解了题目大意其实就很好写用一个结构体数组来表示棋子的位置和状态还有暴击的系数然后用set来看哪个位置会不会已经有棋子了然后暴力模拟就出来了。AC代码// Problem: 天下劫 // Contest: NowCoder // URL: https://ac.nowcoder.com/acm/contest/138554/A // Memory Limit: 1024 MB // Time Limit: 2000 ms // author世间 // Date2026-07-28 13:02:28 #includebits/stdc.h using namespace std; #define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0) #define endl \n #define int long long #define pii pairint,int #define fi first #define se second #define YES coutYESendl; #define NO coutNOendl; const int dx[]{1,-1,0,0}; const int dy[]{0,0,1,-1}; struct node{ int x,y,value; bool ok; }; bool check(int x,int y) { return (x0x4y-2y2); } void solve() { int n; cinn; vectornode v; setpii st; st.insert({0,0}); for(int i0;in;i) { int x,y; cinxy; v.push_back({x,y,4,true}); st.insert({x,y}); } int m; cinm; for(int i0;im;i) { int x,y; cinxy; if(check(x,y)){ if(st.find({x,y})st.end()){ v.push_back({x,y,4,true}); st.insert({x,y}); } for(int d0;d4;d) { int nxxdx[d]; int nyydy[d]; if(nx0ny0) continue; if(st.find({nx,ny})st.end()){ int shucheck(nx,ny)?4:2; v.push_back({nx,ny,shu,true}); st.insert({nx,ny}); } } }else{ if(st.find({x,y})st.end()){ v.push_back({x,y,2,true}); st.insert({x,y}); } } } int q; cinq; for(int i0;iq;i) { int xx,yy; cinxxyy; int ans0; vectorintused; for(int j0;jv.size();j) { if(!v[j].ok) continue; if (abs(v[j].x-xx)abs(v[j].y-yy)2){ ansv[j].value*669; used.push_back(j); } } for(auto t:used){ v[t].okfalse; } coutansendl; } // coutfixedsetprecision(x) } signed main() { IOS; int _1; // cin_; while(_--) solve(); return 0; }G题这个题是一个二维前缀和加差分的板子题目吧。就是如果我们熟练于二维差分加前缀和的话这题其实还挺好写的。首先我们定义一个a数组来标记每一个格子被猫覆盖的数量如果被一个覆盖就等于1然后定义一个数组b来表示格子上面有没有猫哈气。初始的ans2000*2000,然后我们找到一个格子的a数组是1那就表示是一个猫覆盖我们就可以把它对应的b数组定义为1然后ans–,然后如果这个格子1那么我们就把对应的b数组定义为0因为不管依次去掉哪个猫这一块都不会从有猫变成无猫然后ans–。我们用差分是为了节省时间复杂度而用前缀和是为了方便取区间比如区间(2,2)到区间(3,3)那么我们想取这个区间只需要v [ 3 ] [ 3 ] − v [ 1 ] [ 2 ] − v [ 2 ] [ 2 ] v [ 1 ] [ 1 ] v[3][3]-v[1][2]-v[2][2]v[1][1]v[3][3]−v[1][2]−v[2][2]v[1][1]所以我们需要用到前缀和的性质。而差分的话我们在输入n个矩形数据的时候想要把所有的二维坐标对应位置都加上1那不现实因为还需要两层循环来实现那么必定会超时所以我们用到了差分。然后用前缀和来实现这个这个格子是1还是0还是大于1再根据这个来判断统计被一个猫占领的区域。AC代码// Problem: Ha~ // Contest: NowCoder // URL: https://ac.nowcoder.com/acm/contest/138554/G // Memory Limit: 1024 MB // Time Limit: 2000 ms // author世间 // Date2026-07-28 09:12:58 #includebits/stdc.h using namespace std; #define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0) #define endl \n // #define int long long #define pii pairint,int #define fi first #define se second #define YES coutYESendl; #define NO coutNOendl; int a[2010][2010]{0}; int b[2010][2010]{0}; void solve() { int n; cinn; int u[2010]; vectorint d(n5); vectorint l(n5); vectorint r(n5); int ans2000*2000; for(int i1;in;i) { cinu[i]d[i]l[i]r[i]; a[u[i]][l[i]]; a[u[i]][r[i]1]--; a[d[i]1][l[i]]--; a[d[i]1][r[i]1]; } for(int i1;i2000;i) { for(int j1;j2000;j) { a[i][j]a[i][j]a[i-1][j]a[i][j-1]-a[i-1][j-1]; if(a[i][j]1){ ans--; b[i][j]1; }else if(a[i][j]1){ ans--; b[i][j]0; } } } for(int i1;i2000;i) { for(int j1;j2000;j) { b[i][j]b[i][j]b[i-1][j]b[i][j-1]-b[i-1][j-1]; } } for(int i1;in;i) { int numb[d[i]][r[i]]-b[d[i]][l[i]-1]-b[u[i]-1][r[i]]b[u[i]-1][l[i]-1]; coutansnumendl; } // coutfixedsetprecision(x) } signed main() { IOS; int _1; // cin_; while(_--) solve(); return 0; }L题这个题感觉没有哪个难题解说这题是一个字典树板题但是我们不用他们说的也能写啊。这里我来一个听独特的方法仅仅用到哈希表首先呢我们知道哈希表可以存储我们想要存的串但是它的一半串呢我们不知道怎么办但是呢我们可以把它所有的字串全部都存进去然后呢找的时候也能直接找到然后当op3的时候呢我们再依次把它的字串删了但是这里我们得删除把它的字串个数删除完所以这里得改变一下这个字串通过这个s加了几次我们就删除几次。然后进行模拟就行了// Problem: 至理名言 // Contest: NowCoder // URL: https://ac.nowcoder.com/acm/contest/138554/L // Memory Limit: 1024 MB // Time Limit: 4000 ms // author世间 // Date2026-07-27 14:56:52 #includebits/stdc.h using namespace std; #define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0) #define endl \n #define int long long #define pii pairint,int #define fi first #define se second #define YES coutYESendl; #define NO coutNOendl; void solve() { int n; cinn; unordered_mapstring,intmp; while(n--) { int op; cinop; if(op1) { string s; cins; string s1; for(auto x:s){ s1x; mp[s1]; } coutmp[s]endl; } if(op2) { string s; cins; if(mp.count(s)) YES else NO } if(op3){ string s; cins; string s1; int shump[s];//这里我们只删除通过s串加的字串的个数 for(auto x:s){ s1x; mp[s1]-shu; if(mp[s1]0) mp.erase(s1); } } } // coutfixedsetprecision(x) } signed main() { IOS; int _1; // cin_; while(_--) solve(); return 0; }总结​ 有优势有劣势B题通过数学思维把它做出来了还比较可以但是其实这题总过题人数不少了基本上一般人都过了。其次就是差分前缀和一维现在都不太会用这次直接出一个二维的直接给我干爆炸了算法方面还得多练啊其次就是这个L题这个思想当时有点朝这边想了都开了两个map来弄了就差怎么把它的字串删除了这点学长的思维确实厉害。这次排名比上次进步了但是还不是太靠前下次继续努力

相关新闻

Docker零基础入门:从安装到实战部署,解决环境一致性难题

Docker零基础入门:从安装到实战部署,解决环境一致性难题

1. 项目概述:为什么是Docker,以及它能为你带来什么 如果你是一名开发者,或者正在学习编程,那么“环境配置”这个词对你来说一定不陌生。从“在我的机器上能跑”到“在服务器上跑不起来”,这中间的鸿沟,往往…

2026/10/10 8:46:24 阅读更多 →
物流地磅系统核心概念解析:作业类型与皮重类型

物流地磅系统核心概念解析:作业类型与皮重类型

在物流和生产管理场景中,这个“作业类型”通常是用来区分货物在不同状态或地点之间移动的业务类别。以下是它们最常见的意思: 作业类型核心含义举个场景例子倒运短距离的转运或临时性搬迁。通常指在同一个厂区或相邻区域,将货物从一个堆场、…

2026/10/4 2:24:12 阅读更多 →
基于ATTCK框架的内网渗透实战:从Vulnstack靶场到域控攻陷

基于ATTCK框架的内网渗透实战:从Vulnstack靶场到域控攻陷

1. 项目概述:从靶场到实战的桥梁 如果你是一名安全从业者,或者对攻防对抗感兴趣,那么“内网渗透”这个词对你来说一定不陌生。它不再是电影里黑客敲几下键盘就能接管整个公司网络的魔幻场景,而是一套严谨、系统、步步为营的技术与…

2026/10/11 7:11:08 阅读更多 →

最新新闻

C盘爆红不用慌:用Codex定位AppData 87.8GB占用并安全清理

C盘爆红不用慌:用Codex定位AppData 87.8GB占用并安全清理

C盘爆红是个老话题了,但每次有人遇到还是会慌,尤其是系统提示“磁盘空间不足”的那一刻,电脑卡顿、软件闪退、保存文件失败一起涌过来,非常糟心。我这次遇到的更离谱——C盘只剩不到2GB可用空间,整个系统处于随时可能罢…

2026/10/13 7:27:03 阅读更多 →
SpringBoot实战:从零搭建一套滑雪场管理系统毕业设计完整方案

SpringBoot实战:从零搭建一套滑雪场管理系统毕业设计完整方案

作为给多届毕业设计学生看过代码、也亲手维护过几个业务系统的人,我听到“滑雪场管理系统”这个题目时的第一反应是:终于有人不从图书管理系统里选题了。滑雪场的日常运营链条足够长——线上购票、现场核销、雪具租赁、押金结算、教练预约、会员储值、日…

2026/10/13 7:27:03 阅读更多 →
PyCharm 本地接入 DeepSeek:基于 CodeGPT 与 Ollama 的离线 AI 编码实践

PyCharm 本地接入 DeepSeek:基于 CodeGPT 与 Ollama 的离线 AI 编码实践

简介:这份PDF资料面向希望提升编码效率的Python开发者与AI工具爱好者,聚焦于将本地部署的DeepSeek大模型接入PyCharm这一实用场景,帮助读者在保证数据安全的前提下获得智能代码生成辅助。资源包内含1个PDF文件,大小约1.44MB&#…

2026/10/13 7:27:03 阅读更多 →
CodeWhisperer免费AI编程助手:代码补全、安全扫描与使用指南

CodeWhisperer免费AI编程助手:代码补全、安全扫描与使用指南

前两天刷动态,看到实时 AI 编程助手 Amazon CodeWhisperer 对个人开发者免费开放的消息,第一反应是“又来一个试用噱头”。但真正把插件装上、在 VS Code 里写了半小时代码之后,我承认这次确实香。CodeWhisperer 不是那种给你补个变量名、自动…

2026/10/13 7:27:03 阅读更多 →
不止是文本工具:Antigravity编辑器项目管理中枢实战

不止是文本工具:Antigravity编辑器项目管理中枢实战

这个系列写到这里,终于轮到编辑器了。前几篇我们聊了环境准备、项目描述文件、构建流程和部署配置,都是偏“管道”层面的内容,真正让我每天对着屏幕敲上几个小时的是这一篇要讲的编辑器。Antigravity 体系里的编辑器不是普通的文本工具&#…

2026/10/13 7:27:03 阅读更多 →
网上宠物店系统实战:SpringBoot+Vue3+MyBatis前后端分离部署

网上宠物店系统实战:SpringBoot+Vue3+MyBatis前后端分离部署

做这套网上宠物店系统,起因其实挺简单——有位做校园实训项目的朋友问我要一套完整的前后端分离案例,既要有电商的业务逻辑,又要覆盖主流技术栈。想着与其临时拼凑,不如把平时积累的东西整理成一套能跑、可扩展的系统。于是就有了…

2026/10/13 7:26:02 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →