zoukankan      html  css  js  c++  java
  • 图像有用区域

    点击打开链接


    题目有点坑,注意先输入N,后输入M,优化在图的最外层再添加一层

    // File Name: nyoj92.cpp
    // Author: bo_jwolf
    // Created Time: 2013年04月30日 星期二 15:20:24
    
    #include<vector>
    #include<list>
    #include<map>
    #include<set>
    #include<deque>
    #include<stack>
    #include<bitset>
    #include<algorithm>
    #include<functional>
    #include<numeric>
    #include<utility>
    #include<sstream>
    #include<iostream>
    #include<iomanip>
    #include<cstdio>
    #include<cmath>
    #include<cstdlib>
    #include<cstring>
    #include<ctime>
    #include<queue>
    using namespace std;
    const int maxn = 1500 ;
    int mapp[ maxn ][ maxn ];
    int visited[ maxn ][ maxn ];
    int m , n ;
    int dis[ 4 ][ 2] = { { -1 , 0 } , { 1 , 0 } , { 0 , 1 } , { 0 , -1 } }; 
    struct node
    {
    	int x , y ;
    }next , cur ;
    
    void bfs( int x , int y )
    {
    //	cout << "aaaaaaaaaaaa";
    	int i;
    	queue< node > Q ;
    	cur.x = x ;
    	cur.y = y ;
    	Q.push( cur );
    	while( !Q.empty() )
    	{
    		cur = Q.front();
    		Q.pop();
    		for( i = 0 ; i < 4 ; i++ )
    		{
    			next.x = cur.x + dis[ i ][ 0 ] ;
    			next.y = cur.y + dis[ i ][ 1 ] ;
    			if( next.x < 0 || next.x > m + 1 || next.y < 0 || next.y > n + 1 || mapp[ next.x ][ next.y ] == 0 )//注意顺序,放在最前面判断,可能会出现bug
    				continue ;
    			mapp[ next.x ][ next.y ] = 0 ;
    			Q.push( next ) ;
    		//	cout<< "aaaaaaaaaaa";
    		}
    	}
    }
    
    int main()
    {
    	int Case ;
    	cin >> Case ;
    	int i , j ;
    	while( Case-- )
    	{
    		cin >> n >> m;
    		for( i = 0 ; i <= m ; i++ )
    			mapp[ i ][ 0 ] = mapp[ i ][ n + 1 ] = 1 ;
    		for( j = 0 ; j <= n ; j++ )
    			mapp[ 0 ][ j ] = mapp[ m + 1 ][ j ] = 1;
    
    		for( i = 1 ;i <= m ; i++ )
    			for( j = 1 ; j <= n ; j++ )
    				cin >> mapp[ i ][ j ] ;
    		bfs( 0 , 0 ) ;
    		for( i = 1 ; i <= m ; i++ )
    			for( j = 1 ; j <= n ; j++ )
    				if( j == n )
    					cout << mapp[ i ][ j ] << endl ;
    				else
    					cout << mapp[ i ][ j ] << ' ' ;
    	}
    	return 0;
    }


  • 相关阅读:
    IDEA搭建普通java项目
    反射的学习
    解决Eclipse中文文档注释错位-处女座的悲哀!
    maven私服的搭建
    Springboot简介01
    git初识
    Servlet学习系列1
    搭建和启动javaWeb项目
    IDEA快捷键使用说明
    1.6 比较、掩码和布尔逻辑
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3052253.html
Copyright © 2011-2022 走看看