zoukankan      html  css  js  c++  java
  • B广搜深搜

    <span style="color:#330099;">/*
    B - 广搜/深搜 基础
    Time Limit:1000MS     Memory Limit:30000KB     64bit IO Format:%I64d & %I64u
    Submit
     
    Status
    Description
    There is a rectangular room, covered with square tiles. Each tile is colored either red or black. A man is standing on a black tile. From a tile, he can move to one of four adjacent tiles. But he can't move on red tiles, he can move only on black tiles. 
    
    Write a program to count the number of black tiles which he can reach by repeating the moves described above. 
    Input
    The input consists of multiple data sets. A data set starts with a line containing two positive integers W and H; W and H are the numbers of tiles in the x- and y- directions, respectively. W and H are not more than 20. 
    
    There are H more lines in the data set, each of which includes W characters. Each character represents the color of a tile as follows. 
    
    '.' - a black tile 
    '#' - a red tile 
    '@' - a man on a black tile(appears exactly once in a data set) 
    The end of the input is indicated by a line consisting of two zeros. 
    Output
    For each data set, your program should output a line which contains the number of tiles he can reach from the initial tile (including itself).
    Sample Input
    6 9
    ....#.
    .....#
    ......
    ......
    ......
    ......
    ......
    #@...#
    .#..#.
    11 9
    .#.........
    .#.#######.
    .#.#.....#.
    .#.#.###.#.
    .#.#..@#.#.
    .#.#####.#.
    .#.......#.
    .#########.
    ...........
    11 6
    ..#..#..#..
    ..#..#..#..
    ..#..#..###
    ..#..#..#@.
    ..#..#..#..
    ..#..#..#..
    7 7
    ..#.#..
    ..#.#..
    ###.###
    ...@...
    ###.###
    ..#.#..
    ..#.#..
    0 0
    Sample Output
    45
    59
    6
    13
    By Grant Yuan
    2014.7.12
    */
    #include<iostream>
    #include<stdio.h>
    #include<string.h>
    #include<queue>
    #include<cstdio>
    using namespace std;
    bool flag[21][21];
    char a[21][21];
    int n,m;
    int s1,f1;
    typedef struct{
       int x;
       int y;
    }node;
    int next[4][2]={1,0,0,1,-1,0,0,-1};
    int sum;
    queue<node>q;
    bool can(int cc,int dd)
    {
        if(cc>=0&&cc<m&&dd>=0&&dd<n&&flag[cc][dd]==0)
          return 1;
        return 0;
    }
    
    void slove()
    {  int c,d,cc,dd;
       node q1;
        while(!q.empty()){
         c=q.front().x;d=q.front().y;
          for(int i=0;i<4;i++)
            {
                cc=c+next[i][0];
                dd=d+next[i][1];
                if(can(cc,dd))
                  {   q1.x=cc;
                      q1.y=dd;
                      q.push(q1);
                      flag[cc][dd]=1;
                      sum++;
                  }
            }
            q.pop();
           }
    }
    
    int main()
    {  node q1;
        while(1){
            sum=1;
         memset(flag,0,sizeof(flag));
         cin>>n>>m;
         if(n==0&&m==0)
            break;
         for(int i=0;i<m;i++){
           scanf("%s",&a[i]);}
         for(int i=0;i<m;i++)
           for(int j=0;j<n;j++)
             {if(a[i][j]=='#')
                 flag[i][j]=1;
    
             if(a[i][j]=='@')
                   s1=i,f1=j;
             }
            q1.x=s1;
            q1.y=f1;
            q.push(q1);
            flag[s1][f1]=1;
            slove();
            cout<<sum<<endl;
             }
             return 0;
    }
    </span>

  • 相关阅读:
    METHODS OF AND APPARATUS FOR USING TEXTURES IN GRAPHICS PROCESSING SYSTEMS
    Display controller
    Graphics processing architecture employing a unified shader
    Graphics-Processing Architecture Based on Approximate Rendering
    Architectures for concurrent graphics processing operations
    Procedural graphics architectures and techniques
    DYNAMIC CONTEXT SWITCHING BETWEEN ARCHITECTURALLY DISTINCT GRAPHICS PROCESSORS
    Thermal zone monitoring in an electronic device
    System and method for dynamically adjusting to CPU performance changes
    Framework for Graphics Animation and Compositing Operations
  • 原文地址:https://www.cnblogs.com/codeyuan/p/4254530.html
Copyright © 2011-2022 走看看