题目
原题链接:A. Maze
题意
给出一个n*m的表,#表示墙,.表示路。现要填充k个X。要求填充后的路也是一个整体。
参考了其他作者的思路。利用dfs。如果需要填充k个,有t个路,那么只要不填充t-k个就可以。
代码
#include
using namespace std;
char s[505][505];
int vis[505][505]={0};
int mov[4][2]={0,1,0,-1,1,0,-1,0};
int n,m,k,t=0;
void dfs(int r,int c){
if(!t) return ;
t--;
vis[r][c]=1;
for(int i=0;i<4;i++){
int ti=r+mov[i][0];
int tj=c+mov[i][1];
if(ti>=0 && ti=0 && tj