今天的B题
我是想爆出来的,当时想的不错,但后来发现这样爆行不通
前面的*点就不是最优了
但是我环视要存起来
#include<bits/stdc++.h>
using namespace std;
int n,m;
char S[60][60];
int IDd[60][60];
int IDd2[60][60];
void dfs(int r,int c,int id)
{
// printf("r%d c%d\n",r,c);
if(r<0||r>=n||c<0||c>=m) { return ; }
if(IDd[r][c]>0 || S[r][c]=='#') { return ; }
IDd[r][c]=id;
dfs(r,c+1,id);
dfs(r,c-1,id);
dfs(r-1,c,id);
dfs(r+1,c,id);
}
void FULL(int i,int j)
{
IDd2[i][j]=30000;
int I=i,J=j;
I--;
while(I>=0){
if(IDd[I][J]==1) break;
IDd2[I][J]=30000; I--;
}
I=i,J=j;
I++;
while(I<n){
if(IDd[I][J]==1) break;
IDd2[I][J]=30000; I++;
}
I=i,J=j;
J--;
while(J>=0){
if(IDd[I][J]==1) break;
IDd2[I][J]=30000; J--;
}
I=i,J=j;
J++;
while(J<=m){
if(IDd[I][J]==1) break;
IDd2[I][J]=30000; J++;
}
}
int main()
{
ios::sync_with_stdio(false);
int cases;
scanf("%d",&cases);
while(cases--){
memset(IDd,0,sizeof(IDd));
memset(IDd2,0,sizeof(IDd2));
memset(S,0,sizeof(S));
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++) scanf("%s",S[i]);
int cnt=0;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++){
if(S[i][j]=='#'){
IDd[i][j]=1;
}
}
// for(int i=0;i<n;i++){
// for(int j=0;j<m;j++)
// printf("%d ",IDd[i][j]);
// printf("\n");
// }
int minn=0;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
int get1=0;
if(S[i][j]=='*'){
get1++;
FULL(i,j);
for(int i=0;i<n;i++){
for(int j=0;j<m;j++)
printf("%d ",IDd2[i][j]);
printf("\n");
}
for(int k=0;k<n;k++)
for(int l=0;l<m;l++){
if(S[k][l]=='*'&&IDd2[k][l]!=30000){
get1++;
FULL(k,l);
for(int i=0;i<n;i++){
for(int j=0;j<m;j++)
printf("%d ",IDd2[i][j]);
printf("\n");
}
}
}
// for(int k=0;k<n;k++){
// for(int l=0;l<m;l++){
// printf("%d ",IDd2[k][l]);
// }
// printf("\n");
// }
minn = max(get1,minn);
memset(IDd2,0,sizeof(IDd2));
}
}
}
printf("%d\n",minn);
for(int i=0;i<n;i++){
for(int j=0;j<m;j++)
printf("%d ",IDd2[i][j]);
printf("\n");
}
}
/*
100
2 4
#*#o
*o**
*/
return 0;
}
/****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************/