#includeusing namespace std; int n,m,k; char s[20][20]; int t; bool vis[20][20]; bool solve(int i,int j){ int ss=1; while(s[i-ss][j-ss]=='*'&&s[i-ss][j+ss]=='*'&&i-ss>=1&&j-ss>=1&&j+ss<=m){ ss++; } if(ss>k){ vis[i][j]=1; for(int z=1;z >t; while(t--){ bool flag=true; cin>>n>>m>>k; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ cin>>s[i][j]; vis[i][j]=false; } } for(int i=n;i>=1;i--){ for(int j=m;j>=1;j--){ if(s[i][j]=='*'){ solve(i,j); } } } for(int i=1;i<=n&&flag;i++){ for(int j=1;j<=m&&flag;j++){ if(s[i][j]=='*'&&vis[i][j]==0){ flag=false; } } } if(flag) cout<<"YES"< 逆序遍历每个点,满足条件则打上标记
如果满足条件,则最终图中每个点都应该被打上标记



