news 2026/6/9 22:23:29

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/6/9 20:11:16

告别云存储管理混乱:qiniuClient一站式解决方案大揭秘

告别云存储管理混乱&#xff1a;qiniuClient一站式解决方案大揭秘 【免费下载链接】qiniuClient 云存储管理客户端。支持七牛云、腾讯云、青云、阿里云、又拍云、亚马逊S3、京东云&#xff0c;仿文件夹管理、图片预览、拖拽上传、文件夹上传、同步、批量导出URL等功能 项目地…

作者头像 李华
网站建设 2026/6/5 5:04:01

PaddlePaddle框架内置的强化学习模块功能前瞻

PaddlePaddle框架内置的强化学习模块功能前瞻 在智能制造、自动驾驶和智能客服等前沿领域&#xff0c;AI系统不再满足于“识别”或“预测”&#xff0c;而是越来越需要具备“决策”能力。这种从感知到行动的跃迁&#xff0c;正是强化学习&#xff08;Reinforcement Learning, R…

作者头像 李华
网站建设 2026/6/9 20:08:04

Qwen-Image-Edit-Rapid-AIO:5分钟掌握AI图像编辑的核心技巧

想要快速上手AI图像编辑却不知从何入手&#xff1f;Qwen-Image-Edit-Rapid-AIO作为ComfyUI生态中的全能型选手&#xff0c;通过创新的技术整合让图像生成与编辑变得前所未有的简单。这个项目融合了优化技术、VAE变分自编码器和CLIP对比语言-图像预训练模型&#xff0c;为你提供…

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

RESTful API 请求和响应格式

RESTful API 的请求和响应格式详解 在 RESTful API 中&#xff0c;请求和响应的格式设计直接影响 API 的易用性、一致性和可维护性。优秀的格式规范能让前后端开发者快速理解接口行为&#xff0c;减少沟通成本。 1. 总体原则 内容类型统一&#xff1a;几乎全部使用 JSON&…

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

Turbo Editor完全攻略:从零开始的移动文本编辑指南

Turbo Editor完全攻略&#xff1a;从零开始的移动文本编辑指南 【免费下载链接】turbo-editor Simple and powerful File Editor for Android. All is licensed under the GPLv3 license. 项目地址: https://gitcode.com/gh_mirrors/tu/turbo-editor 你是否曾经在通勤路…

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

RESTful API 实际应用

RESTful API 的实际应用已经无处不在&#xff01;从你每天用的手机 App 到大型电商平台&#xff0c;再到 AI 服务&#xff0c;几乎所有现代 Web 和移动应用都依赖 RESTful API 来实现前后端分离、数据交互和第三方集成。 下面用真实场景、流行案例和项目示例&#xff0c;带你看…

作者头像 李华