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

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';}}}

http://www.gsyq.cn/news/1566031.html

相关文章:

  • 人形机器人敏捷技能切换:基于技能图与分层强化学习的决策框架
  • 2026年6月知名的展台搭建全包服务推荐,样品展台搭建/展馆/活动庆典/展台展厅搭建/商务活动庆典,展台搭建品牌选哪家 - 品牌推荐师
  • AI数据伦理:算法偏见、版权争议与边缘群体赋权的实践指南
  • Ubuntu 20.04 APT 部署 Elasticsearch 实战指南
  • 深圳信息流广告服务商哪家好:排名前五深度测评 - 服务品牌热点
  • 从8位到32位MCU:QE128系列核心架构对比与嵌入式开发实战
  • QualiaNet:基于经验与推理双阶段的3D视觉理解框架
  • 2026 北京手表回收全攻略:朝阳区7 家正规机构深度测评,附真实成交避坑指南 - 薛定谔的梨花猫
  • Ubuntu 20.04 安装 Node.js 正确姿势:nvm/NodeSource/apt 选型指南
  • 嵌入式传感器融合实战:从NXP库驱动开发到系统集成优化
  • 2026岳阳本地正规瓷砖空鼓维修服务商盘点|无损免拆砖修复,全域上门售后有保障 - 宅安选房屋修缮
  • 2026 淮南中考 100 到 200 分没考上高中能上哪些公办学校? - 我叫小周
  • 杭州抖音公会营业性演出许可证代办公司推荐 - 资讯速览
  • 为什么你的显卡跑大模型很慢?可能你多做了一遍 FP16 的“显存折返跑
  • 百度网盘高速下载终极指南:使用Python获取真实下载地址的完整教程
  • 2026泰安本地正规瓷砖空鼓维修服务商盘点|无损免拆砖修复,全域上门售后有保障 - 宅安选房屋修缮
  • MIND框架:LLM与MLIP融合构建AI材料科学家
  • G.723.1A编解码器初始化实战:DSP嵌入式语音处理核心配置详解
  • 75 载公办底蕴!淮南职业技术学院中专部 2026 全面招录 - 我叫小周
  • DGX Spark上vLLM部署Qwen3.5-9B实战指南
  • 正交变换优化数据驱动可达性分析:降阶与紧致化实战
  • 2026年6月最新万国中国官方售后客服地址电话服务网点热线 - 亨得利官方服务中心
  • 东莞 7 家正规名表回收门店实测 2026 靠谱渠道与变现避坑汇总 - 薛定谔的梨花猫
  • 188.拒绝玩具代码!论文对齐版DDPM完整实现,理论+工程细节全覆盖
  • 大语言模型幻觉治理:IUQ框架实现不确定性量化与可控生成
  • Robot Framework自动化测试环境搭建:从零到一实战指南
  • 编译器性能权衡自动化:tradeoff.pl工具在DSP嵌入式开发中的实践
  • 淮南 75 年公办中专!淮南职业技术学院中专部 2026 正式招生 - 我叫小周
  • NFTDELTA框架:多视图学习检测智能合约权限控制漏洞
  • QE128嵌入式开发实战:IIC、ADC、ACMP、RTC外设驱动与调试避坑指南