news 2026/5/30 16:57:37

GESP认证C++编程真题解析 | P11248 [GESP202409 七级] 矩阵移动

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GESP认证C++编程真题解析 | P11248 [GESP202409 七级] 矩阵移动

​欢迎大家订阅我的专栏:算法题解:C++与Python实现!
本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战!

专栏特色
1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的代码实现与详细指导,帮助您夯实算法基础。
2.系统化学习路径:按照算法类别和难度分级,从基础到进阶,循序渐进,帮助您全面提升编程能力与算法思维。

适合人群:

  • 准备参加蓝桥杯、GESP、CSP-J、CSP-S等信息学竞赛的学生
  • 希望系统学习C++/Python编程的初学者
  • 想要提升算法与编程能力的编程爱好者

附上汇总帖:GESP认证C++编程真题解析 | 汇总


【题目来源】

洛谷:[P11248 GESP202409 七级] 矩阵移动 - 洛谷

【题目描述】

小杨有一个n × m n \times mn×m的矩阵,仅包含01?三种字符。矩阵的行从上到下编号依次为1 , 2 , … , n 1,2,\dots, n1,2,,n,列从左到右编号依次为1 , 2 , … , m 1, 2, \dots, m1,2,,m。小杨开始在矩阵的左上角( 1 , 1 ) (1,1)(1,1),小杨只能向下或者向右移动,最终到达右下角( n , m ) (n, m)(n,m)时停止,在移动的过程中每经过一个字符1得分会增加一分(包括起点和终点),经过其它字符则分数不变。小杨的初始分数为0 00分。

小杨可以将矩阵中不超过x xx个字符?变为字符1。小杨在修改矩阵后,会以最优的策略从左上角移动到右下角。他想知道自己最多能获得多少分。

【输入】

第一行包含一个正整数t tt,代表测试用例组数,接下来是t tt组测试用例。对于每组测试用例,一共n + 1 n + 1n+1行。

第一行包含三个正整数n , m , x n, m, xn,m,x,含义如题面所示。
之后n nn行,每行一个长度为m mm的仅含01?的字符串。

【输出】

对于每组测试用例,输出一行一个整数,代表最优策略下小杨的得分最多是多少。

【输入样例】

2 3 3 1 000 111 01? 3 3 1 000 ?0? 01?

【输出样例】

4 2

【算法标签】

《洛谷 P11248 矩阵移动》 #动态规划DP# #GESP# #2024#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;string m1[1000];// 存储网格地图,m1[i]表示第i行字符串intt,n,m,dp[505][505][300],k;// t: 测试用例数, n: 行数, m: 列数, k: 最大可使用'?'数intmain(){cin>>t;// 输入测试用例数while(t--){// 输入网格大小和k值cin>>n>>m>>k;// 读入网格,并在每行前添加一个字符,使索引从1开始for(inti=1;i<=n;i++){cin>>m1[i];m1[i]="e"+m1[i];// 在字符串前添加一个字符,使得列索引从1开始}// 初始化动态规划数组为0memset(dp,0,sizeof(dp));// 动态规划计算最大路径for(inti=1;i<=n;i++)// 遍历行{for(intj=1;j<=m;j++)// 遍历列{for(intb=0;b<=k;b++)// 遍历使用的'?'数量{// 情况1:不使用当前位置的'?'(或当前位置是'1'或'0')// 从上方或左方转移,不消耗'?'名额dp[i][j][b]=(m1[i][j]=='1')+max(dp[i-1][j][b],dp[i][j-1][b]);// 情况2:如果当前位置是'?',且还有'?'名额可用if(b&&m1[i][j]=='?'){// 将'?'当作'1',消耗一个'?'名额dp[i][j][b]=max(dp[i][j][b],1+max(dp[i-1][j][b-1],dp[i][j-1][b-1]));}}}}// 在所有可能的'?'使用数量中,找到最大价值intans=0;for(inti=0;i<=k;i++){ans=max(ans,dp[n][m][i]);}cout<<ans<<endl;}return0;}

【运行结果】

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

AI编码规则的规模化管理:从个人实践到企业级自动化

AI编码规则的规模化管理&#xff1a;从个人实践到企业级自动化 【免费下载链接】awesome-cursorrules &#x1f4c4; A curated list of awesome .cursorrules files 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-cursorrules 在当今AI辅助编程快速发展的…

作者头像 李华
网站建设 2026/5/24 8:03:38

终极文档转换解决方案:如何用Pandoc实现一键多格式自由转换

还在为不同文档格式之间的兼容性问题而头疼吗&#xff1f;&#x1f914; 无论是学术论文、技术文档还是办公文件&#xff0c;格式转换常常成为工作效率的"阻碍因素"。今天&#xff0c;我们将深入解析Pandoc这款强大的通用标记转换器&#xff0c;帮你彻底告别格式困扰…

作者头像 李华
网站建设 2026/5/25 19:56:55

Qwen图像编辑极速方案:新手也能轻松掌握的AI创作神器

想要快速生成高质量AI图像却苦于技术门槛太高&#xff1f;Qwen Image Edit-Rapid-AIO正是为你量身打造的极速创作解决方案&#xff01;这个开源项目将复杂的AI图像生成技术封装成简单易用的工具&#xff0c;让每个人都能轻松体验从文字到图像的魔法转换。&#x1f3a8; 【免费下…

作者头像 李华
网站建设 2026/5/28 2:02:12

Adobe Downloader完整指南:如何一键获取Adobe全家桶软件

还在为Adobe官网复杂的下载流程而烦恼吗&#xff1f;Adobe Downloader这款macOS专属工具将彻底改变你的下载体验&#xff01;作为完全开源的项目&#xff0c;它能让你一键获取所有Adobe软件&#xff0c;包括最新的测试版本&#xff0c;无需订阅登录就能享受高速下载。无论你是设…

作者头像 李华
网站建设 2026/5/30 1:39:47

完美滚动条终极指南:打造极致用户体验的完整教程

完美滚动条终极指南&#xff1a;打造极致用户体验的完整教程 【免费下载链接】TW-Elements 项目地址: https://gitcode.com/gh_mirrors/twe/TW-Elements 完美滚动条&#xff08;Perfect Scrollbar&#xff09;是一个专为现代网页设计打造的轻量级JavaScript插件&#x…

作者头像 李华
网站建设 2026/5/21 23:26:38

Simulink三相四桥臂逆变器闭环控制仿真探秘

三相四桥臂逆变器闭环控制仿真&#xff0c;LC型滤波器&#xff0c;电阻负载。 在0.1s和0.2s分别进行满载和半载的切换&#xff0c;闭环效果稳定。 matlab/simulink环境 ~今天&#xff0c;我尝试在Simulink中搭建了一个三相四桥臂逆变器的闭环控制仿真模型&#xff0c;主要研究在…

作者头像 李华