zoukankan      html  css  js  c++  java
  • 单词方阵【DFS】

    image

      1 #include <bits/stdc++.h>
      2 using namespace std;
      3 constexpr size_t maxn = 105;
      4 int dx[9]={1,0,1,-1,0,-1,1,-1};//八个方位 
      5 int dy[9]={0,1,1,0,-1,-1,-1,1};
      6 char mp[maxn][maxn];
      7 bool vis[maxn][maxn];
      8 int pos[9][2], n;
      9 string standard = "yizhong";
     10 bool judge(int x, int y){
     11 	return x >= 0 && x < n && y >= 0 && y < n;
     12 }
     13 void dfs(int x, int y, int p, int k, int cnt){
     14 	//cout << x << " " << y << endl;
     15 	pos[cnt][0]= x;
     16 	pos[cnt][1] = y;
     17 	if(standard[p] == 'g')
     18 	{
     19 		//cout << 1 << endl; 
     20 		for(int i = 0; i < 7; ++ i){
     21 			vis[pos[i][0]][pos[i][1]] = true;
     22 		}
     23 		return;
     24 	}
     25 	int nx = x + dx[k];
     26 	int ny = y + dy[k];
     27 
     28 	if(judge(x, y) && mp[nx][ny] == standard[p + 1]){
     29 		dfs(nx, ny, p + 1, k, cnt + 1);
     30 	}
     31 
     32 }
     33 
     34 
     35 int main(){
     36 	//freopen("input.txt","r",stdin);
     37 
     38 
     39 	cin >> n;
     40 	for(int i = 0; i < n; ++ i){
     41 		for(int j = 0; j < n; ++ j){
     42 			cin >> mp[i][j];
     43 		}
     44 	}
     45 	for(int i = 0; i < n; ++ i){
     46 		for(int j = 0; j < n; ++ j){
     47 
     48 			if(mp[i][j] == 'y'){
     49 				for(int k = 0; k < 8; ++ k)
     50 				{
     51 					int x = i + dx[k];
     52 					int y = j + dy[k];
     53 					if(mp[x][y] == 'i'){
     54 						if(judge(x, y)){
     55 							pos[0][0] = i;
     56 							pos[0][1] = j;
     57 							//cout << endl;
     58 							//cout << i << " " << j << endl;
     59 
     60 							dfs(x, y, 1, k, 1);
     61 						}
     62 					}
     63 				}
     64 			}
     65 		}
     66 	}
     67 
     68 	for(int i = 0; i < n; ++ i){
     69 		for(int j = 0; j < n; ++ j){
     70 			if(vis[i][j])
     71 			cout << mp[i][j];
     72 			else
     73 			cout << '*';
     74 		}
     75 		cout << endl;
     76 	}
     77 
     78 }
    追求吾之所爱
  • 相关阅读:
    JS编码解码详解
    web的几种返回顶部
    图片的懒加载的两种效果
    获取两个日期差
    C#虚方法
    依赖注入(DI)和Ninject
    在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的
    PetShop的系统架构设计
    C#综合揭秘——细说多线程(下)
    C# Socket编程(4)初识Socket和数据流
  • 原文地址:https://www.cnblogs.com/rstz/p/14391063.html
Copyright © 2011-2022 走看看