洛谷 P3392 涂国旗
原题链接
题解
首先用一个二维数组 记录每行中WBR的数量,用来提高查找速度
其次就是用两层for循环
进行区域划分,如下图所示
然后对区域内的所需更改颜色进行统计,这里要注意写好分界点,不然会WA
最后取最小值
#include "bits/stdc++.h" using namespace std; int main(){ int n,m,area[51][3]={0},ans=10000,rnt; char ch; cin>>n>>m; //统计一行内的颜色数量 for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ cin>>ch; if(ch=='W')area[i][0]++; else if(ch=='B')area[i][1]++; else if(ch=='R')area[i][2]++; } } for(int i=1;i<n-1;i++){ for(int j=i;j<n-1;j++){ //上面两层就是用来划分区域 rnt=area[0][1]+area[0][2]+area[n-1][0]+area[n-1][1]; for(int k=1;k<i;k++)rnt+=area[k][1]+area[k][2]; for(int h=i;h<=j;h++)rnt+=area[h][0]+area[h][2]; for(int g=j+1;g<n-1;g++)rnt+=area[g][0]+area[g][1]; ans=min(ans,rnt); } } cout<<ans; }
本文作者:ChengMao
本文链接:https://www.cnblogs.com/ChengMao/p/17058505.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步