2026/5/21 12:36:28
网站建设
项目流程
建设银行海外分行招聘网站,wordpress 免费cdn,伊川网站建设,开发网站的流程是欢迎大家订阅我的专栏#xff1a;算法题解#xff1a;C与Python实现#xff01; 本专栏旨在帮助大家从基础到进阶 #xff0c;逐步提升编程能力#xff0c;助力信息学竞赛备战#xff01;
专栏特色 1.经典算法练习#xff1a;根据信息学竞赛大纲#xff0c;精心挑选…欢迎大家订阅我的专栏算法题解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 1n1行。第一行包含三个正整数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#【代码详解】#includebits/stdc.husingnamespacestd;string m1[1000];// 存储网格地图m1[i]表示第i行字符串intt,n,m,dp[505][505][300],k;// t: 测试用例数, n: 行数, m: 列数, k: 最大可使用?数intmain(){cint;// 输入测试用例数while(t--){// 输入网格大小和k值cinnmk;// 读入网格并在每行前添加一个字符使索引从1开始for(inti1;in;i){cinm1[i];m1[i]em1[i];// 在字符串前添加一个字符使得列索引从1开始}// 初始化动态规划数组为0memset(dp,0,sizeof(dp));// 动态规划计算最大路径for(inti1;in;i)// 遍历行{for(intj1;jm;j)// 遍历列{for(intb0;bk;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(bm1[i][j]?){// 将?当作1消耗一个?名额dp[i][j][b]max(dp[i][j][b],1max(dp[i-1][j][b-1],dp[i][j-1][b-1]));}}}}// 在所有可能的?使用数量中找到最大价值intans0;for(inti0;ik;i){ansmax(ans,dp[n][m][i]);}coutansendl;}return0;}【运行结果】2 3 3 1 000 111 01? 4 3 3 1 000 ?0? 01? 2