zoukankan      html  css  js  c++  java
  • 洛谷 P1683 入门

                              洛谷 P1683 入门

    题目描述

    不是任何人都可以进入桃花岛的,黄药师最讨厌象郭靖一样呆头呆脑的人。所以,他在桃花岛的唯一入口处修了一条小路,这条小路全部用正方形瓷砖铺设而成。有的瓷砖可以踩,我们认为是安全的,而有的瓷砖一踩上去就会有喷出要命的毒气,那你就死翘翘了,我们认为是不安全的。你只能从一块安全的瓷砖上走到与他相邻的四块瓷砖中的任何一个上,但它也必须是安全的才行。

    由于你是黄蓉的朋友,她事先告诉你哪些砖是安全的、哪些砖是不安全的,并且她会指引你飞到第1块砖上(第1块砖可能在任意安全位置),现在她告诉你进入桃花岛的秘密就是:如果你能走过最多的瓷砖并且没有死,那么桃花岛的大门就会自动打开了,你就可以从当前位置直接飞进大门了。

    注意:瓷砖可以重复走过,但不能重复计数。

    输入输出格式

    输入格式:

    第1行两个正整数W和H,分别表示小路的宽度W和长度H,W和H都不大于20。

    以下H行为一个H*W的字符矩阵。每一个字符代表一块瓷砖。其中,“.”代表安全的砖,“#”代表不安全的砖,“@”代表第1块砖。

    【输出格式】

    输出格式:

    输出一行,只包括一个数,即你从第1块砖开始所能安全走过的最多的砖块个数(包括第1块砖)。

    输入输出样例

    输入样例#1: 复制
    11 9
    .#.........
    .#.#######.
    .#.#.....#.
    .#.#.###.#.
    .#.#..@#.#.
    .#.#####.#.
    .#.......#.
    .#########.
    ...........
    
    输出样例#1: 复制
    59

    考察算法:搜索 难度:普及- (突然发现我最近都在做这个难度的题qwq)

    思路:记录起点‘@’的位置开始搜(Although这种题一般用广搜(BFS),我比较喜欢用深搜(DFS))

    代码:
    //广搜代码
    #include<iostream> #include<cmath> #include<string> #include<queue> #define maxn 25 using namespace std; int w, h, fx, fy; bool map[maxn][maxn]; bool visited[maxn][maxn]; int ans = 0; typedef pair<int, int> point; int main() { cin >> w >> h; string str; for(int i = 1; i <= h; ++i) { cin >> str; for(int j = 1; j <= w; ++j) { if(str[j-1] == '.') map[i][j] = true; else if(str[j-1] == '@') fx = i, fy = j; } } queue<point> q; q.push(make_pair(fx, fy)); while(!q.empty()) { point p = q.front(); q.pop(); int x = p.first, y = p.second; if(visited[x][y]) continue; visited[x][y] = true; ans++; if(x-1>=0 && !visited[x-1][y] && map[x-1][y]) q.push(make_pair(x-1, y)); if(y-1>=0 && !visited[x][y-1] && map[x][y-1]) q.push(make_pair(x, y-1)); if(y+1<=w && !visited[x][y+1] && map[x][y+1]) q.push(make_pair(x, y+1)); if(x+1<=h && !visited[x+1][y] && map[x+1][y]) q.push(make_pair(x+1, y)); } cout << ans << endl; return 0; }
  • 相关阅读:
    POJ 1953 World Cup Noise
    POJ 1995 Raising Modulo Numbers (快速幂取余)
    poj 1256 Anagram
    POJ 1218 THE DRUNK JAILER
    POJ 1316 Self Numbers
    POJ 1663 Number Steps
    POJ 1664 放苹果
    如何查看DIV被设置什么CSS样式
    独行DIV自适应宽度布局CSS实例与扩大应用范围
    python 从入门到精通教程一:[1]Hello,world!
  • 原文地址:https://www.cnblogs.com/v-vip/p/8576627.html
Copyright © 2011-2022 走看看