洛谷P3392 涂国旗

#include
using namespace std;
int main()
{
	int n,m,sum=0,minn=1e5;
	cin>>n>>m;//n是行数 
	char arry[n+1][m+1];
	for(int i=1;i<=n;i++)
	 	for(int j=1;j<=m;j++)
	 	  cin>>arry[i][j];
	for(int i=1;i+2<=n;i++)
	 {	
	 	for(int j=i+1;j+1<=n;j++)
	 	{
	 	  sum=0;
	      for(int a=1;a<=i;a++)
	       for(int b=1;b<=m;b++)
	        if(arry[a][b]!='W')sum++;
		  
		  for(int a=j+1;a<=n;a++)
		   for(int b=1;b<=m;b++)
		    if(arry[a][b]!='R')sum++;
		  			 		
	 	   for(int a=i+1;a<=j;a++)
	 	    for(int b=1;b<=m;b++)
	 	     if(arry[a][b]!='B')sum++;
	 	     
	 	   minn=min(minn,sum);
		 }
	 }
	 cout<

思路分析:积累下这种枚举的技巧就行了(两个边界可变的情况)

你可能感兴趣的:(洛谷题单暴力枚举,蓝桥杯,拓扑学,c++)