求助大佬(一定关注),找不出问题,本地全过,5 6 WA了
  • 板块P3392 涂国旗
  • 楼主maozutao
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/12/3 21:28
  • 上次更新2023/12/4 12:42:20
查看原帖
求助大佬(一定关注),找不出问题,本地全过,5 6 WA了
1102188
maozutao楼主2023/12/3 21:28
#include <stdio.h>
#include <string.h>
int n,m;
char t[60][60];
int F(int a,int b,int n,int m);//这个函数救是将n分为 
int min(int a,int b);//n=a+b+c,穷举求每种分法的值,然后找出最小值 
int main(){
    
	int i,j,k,sum=1000;
	scanf("%d %d ",&n,&m);

	for(i=1;i<=n;i++){
		for(j=1;j<=m;j++){
			scanf("%c",&t[i][j]);
		}
		getchar();
	}	
	for(i=1;i<=n-2;i++){
		for(j=1;j<=n-1-i;j++){
			if(i+j<n){
			    k=F(i,j,n,m);
			    sum=min(sum,k);	//求小的那个 
			}			
		}
	}
	printf("%d",sum);
	return 0;
}
int F(int a,int b,int n,int m){
	int i,j,count=0;
	for(i=1;i<=a;i++){
		for(j=1;j<=m;j++){
			if(t[i][j]!='W') count++;
		}
	}
	for(i=a+1;i<=a+b;i++){
		for(j=1;j<=m;j++){
			if(t[i][j]!='B') count++;
		}
	}
	for(i=a+b+1;i<=n;i++){
		for(j=1;j<=m;j++){
			if(t[i][j]!='R') count++;
		}
	}
	return count;
}
int min(int a,int b){	
	if(a>=b){
		return b;
	}else{
		return a;
	}	
}
2023/12/3 21:28
加载中...