news 2026/6/21 9:59:05

L2(第二阶段)真题参考代码 + 注释解释

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
L2(第二阶段)真题参考代码 + 注释解释

本阶段真题参考代码(解析在代码注释里面)

课程链接:戳这 <—(您的支持是我最大的动力!)

例题一:L2-026 小字辈分数 25

voiddfs(intu,intfa)// 搜树模板{d[u]=d[fa]+1;// 求树的深度for(autov:c[u]){if(v!=fa){// 跳过父亲节点dfs(v,u);}}}voidsolve(){cin>>n;introot;for(inti=1;i<=n;i++){intx;cin>>x;if(x==-1)root=i;// 找根节点elsec[x].push_back(i);// 存树}d[root]=1;// 根节点辈分为 1dfs(root,0);// 从根节点出发搜树vector<int>e;// 存辈分最小的序列intmx=0;for(inti=1;i<=n;i++){if(mx<d[i]){// 辈分还有更小e.clear();e.push_back(i);mx=d[i];}elseif(mx==d[i]){// 辈分最小直接存e.push_back(i);}}cout<<mx<<'\n';for(inti=0;i<e.size();i++){// 输出所有点cout<<e[i];if(i!=e.size()-1)cout<<' ';}}

例题二:L2-031 深入虎穴分数 25

voiddfs(intu,intfa)// 搜树模板{d[u]=d[fa]+1;// 求树的深度for(autov:c[u]){if(v!=fa){// 跳过父亲节点dfs(v,u);}}}voidsolve(){cin>>n;for(inti=1;i<=n;i++){intk;cin>>k;for(intj=1;j<=k;j++){intx;cin>>x;c[i].push_back(x);// 存树p[x]++;// 统计入度}}introot;for(inti=1;i<=n;i++)if(!p[i])root=i;// 找到根节点dfs(root,0);// 从根节点往下搜intx,mx=0;for(inti=1;i<=n;i++){// 找到最远的那个点if(mx<d[i]){mx=d[i];x=i;}}cout<<x<<'\n';}

例题三:L2-052 吉利矩阵分数 25

voiddfs(intx,inty){if(x==n&&y>n){ans++;// 统计答案return;}if(y>n)x++,y=1;// 换行for(inti=0;i<=L-row[x]&&i<=L-col[y];i++){// 剪枝 1if(x==n&&i+col[y]!=L)continue;// 剪枝 2if(y==n&&i+row[x]!=L)continue;// 剪枝 3row[x]+=i;// 直接记录行和列的和优化判断col[y]+=i;dfs(x,y+1);row[x]-=i;// 回溯撤回标记col[y]-=i;}}voidsolve(){cin>>L>>n;dfs(1,1);cout<<ans<<'\n';}

例题四:L2-048 寻宝图分数 25

intdx[4]={0,0,1,-1};intdy[4]={1,-1,0,0};intT,n,m,k;voidsolve(){cin>>n>>m;vector<vector<char>>g(n+10,vector<char>(m+10));// 二维n*m固定长度vector<vector<bool>>st(n+10,vector<bool>(m+10));for(inti=0;i<n;i++)for(intj=0;j<m;j++)st[i][j]=0;for(inti=0;i<n;i++){for(intj=0;j<m;j++){cin>>g[i][j];}}intans=0,cnt=0;for(inti=0;i<n;i++){// 遍历整块大陆for(intj=0;j<m;j++){if(!st[i][j]&&g[i][j]>='1'){ans++;// ans统计连通块(岛屿)个数queue<PII>q;// bfs初始化q.push({i,j});st[i][j]=true;boolflag=false;if(g[i][j]>'1')flag=true;while(q.size()){// 搜索连通块autot=q.front();q.pop();for(intk=0;k<4;k++){intx=t.x+dx[k];inty=t.y+dy[k];if(x>=0&&x<n&&y>=0&&y<m&&!st[x][y]&&g[x][y]>='1'){st[x][y]=true;q.push({x,y});if(g[x][y]>'1')flag=true;// 发现宝藏岛屿}}}cnt+=flag;// cnt统计宝藏岛屿}}}cout<<ans<<' '<<cnt<<'\n';}

例题五:L3-037 夺宝大赛分数 30

intdx[4]={0,0,1,-1};intdy[4]={1,-1,0,0};intg[N][N],d[N][N];boolst[N][N];intT,n,m,k;voidbfs(intx,inty)// 标准bfs求最短路{queue<PII>q;// 初始化q.push({x,y});st[x][y]=true;while(q.size()){intx=q.front().x;// 取出当前点inty=q.front().y;q.pop();for(inti=0;i<4;i++){inttx=x+dx[i];intty=y+dy[i];if(!g[tx][ty])continue;// 跳过障碍if(tx>=1&&tx<=n&&ty>=1&&ty<=m&&!st[tx][ty]&&g[tx][ty]==1){d[tx][ty]=d[x][y]+1;// 距离+1q.push({tx,ty});st[tx][ty]=true;}}}}voidsolve(){cin>>n>>m;PII root;for(inti=1;i<=n;i++){for(intj=1;j<=m;j++){cin>>g[i][j];if(g[i][j]==2)root={i,j};// 找到大本营}}bfs(root.x,root.y);// 从大本营出发进行bfs搜索最短路map<int,vector<int>>mp;cin>>k;for(inti=1;i<=k;i++){intx,y;cin>>x>>y;swap(x,y);// 这里的横纵坐标反过来的,需要交换一下if(d[x][y])mp[d[x][y]].push_back(i);// 记录第几支队伍}for(autot:mp){if(t.y.size()==1){// 只有一支队伍就输出cout<<t.y[0]<<' '<<t.x<<'\n';return;}}cout<<"No winner.";}

例题六:L2-050 懂蛇语分数 25

map<string,vector<string>>mp;inta[N],b[N];intT,n,m,k;stringget(string s)// 获取每个单词首字母的集串{string str="";for(inti=0;i<s.size();i++){if(s[i]>='a'&&s[i]<='z'){str+=s[i];while(s[i]!=' '&&i<s.size())i++;}}returnstr;}voidsolve(){cin>>n;cin.ignore();for(inti=1;i<=n;i++){string str;getline(cin,str);// 一整行读入mp[get(str)].push_back(str);// 根据首字母集串映射识别其他串}cin>>m;cin.ignore();for(inti=1;i<=m;i++){string str;getline(cin,str);// 一整行读入string s=get(str);// 获取关键串(首字母映射)if(!mp[s].size())cout<<str<<'\n';// 如果没找到就输出原串else{vector<string>c=mp[s];sort(c.begin(),c.end());// 排序for(intj=0;j<c.size();j++){cout<<c[j];if(j!=c.size()-1)cout<<"|";// 字符串之间用 | 隔开}cout<<'\n';}}}

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/21 9:54:51

基于PIM架构的并行R-tree空间范围查询优化实践

1. 项目概述&#xff1a;当空间查询遇上内存瓶颈最近在折腾一个地理围栏实时告警的项目&#xff0c;数据量上到千万级多边形后&#xff0c;传统的基于磁盘的R-tree索引查询性能开始断崖式下跌&#xff0c;响应时间从毫秒级直接跳到秒级&#xff0c;完全无法满足实时性要求。瓶颈…

作者头像 李华
网站建设 2026/6/21 9:50:05

AI专著写作神器推荐,一键生成20万字专著,轻松应对出版要求!

撰写学术专著不仅是对学术实力的考量&#xff0c;更是一种心理素质的考验。与团队写作的论文不同&#xff0c;专著的创作往往是一个人独立完成的过程。从确定选题、构建框架到逐步写作和反复修改&#xff0c;几乎每个环节都需要研究者亲自打理。这种漫长的孤单写作经历&#xf…

作者头像 李华
网站建设 2026/6/21 9:34:14

QE128嵌入式开发实战:IIC、ADC、ACMP、RTC外设驱动与调试避坑指南

1. 项目概述与核心价值 在嵌入式开发领域&#xff0c;尤其是基于Freescale&#xff08;现NXP&#xff09;的QE系列微控制器进行项目设计时&#xff0c;能否高效、稳定地驱动其片上外设&#xff0c;往往是区分新手和老手的关键。IIC、ACMP、ADC、RTC这四个模块&#xff0c;几乎覆…

作者头像 李华
网站建设 2026/6/21 9:33:53

MIND框架:LLM与MLIP融合构建AI材料科学家

1. 项目概述&#xff1a;当材料科学家“遇见”AI助手最近在材料研发的圈子里&#xff0c;一个名为“MIND”的框架开始被频繁提及。它不是一个单一的工具&#xff0c;而是一个试图将当下最热的两项AI技术——大语言模型&#xff08;LLM&#xff09;和机器学习原子间势能&#xf…

作者头像 李华
网站建设 2026/6/21 9:31:50

大语言模型幻觉治理:IUQ框架实现不确定性量化与可控生成

1. 项目概述&#xff1a;当大模型开始“信口开河”&#xff0c;我们如何量化它的“心虚”&#xff1f; 最近在折腾大语言模型的长文本生成任务&#xff0c;比如写报告、编故事或者生成技术文档&#xff0c;一个绕不开的痛点就是“幻觉”。你肯定也遇到过&#xff1a;模型前面还…

作者头像 李华