zoukankan      html  css  js  c++  java
  • 「2018山东一轮集训」鸽子

        窝也不知道为什么反着BFS就是对的啊QWQ

    #include<cstdio>
    #define ll long long
    using namespace std;
    const int N=2005;
    
    int n,k,m,B[2],E[2],H,T,px[N*N],py[N*N];
    int dx[4]={0,0,1,-1},dy[4]={1,-1,0,0};
    bool M[N][N],v[N][N];
    
    inline bool read(){
    	char ch=getchar();
    	while(ch!='0'&&ch!='1') ch=getchar();
    	return ch=='1';
    }
    
    inline bool solve(){
    	if(M[B[0]][B[1]]||M[E[0]][E[1]]) return 0;
    	
    	px[H=T=1]=E[0],py[1]=E[1],v[E[0]][E[1]]=1;
    	
    	for(int x,y,X,Y,K=1;K<=k;K++){
    		H=1;
    		
    		while(H<=T){
    			x=px[H],y=py[H++];
    			for(int i=0;i<4;i++){
    				X=x+dx[i]*K,Y=y+dy[i]*K;
    				if(X>=0&&X<n&&Y>=0&&Y<m&&!v[X][Y]&&!M[X][Y]) v[X][Y]=1,px[++T]=X,py[T]=Y;
    			}
    		}
    		
    		if(v[B[0]][B[1]]) return 1;
    	}
    	
    	return 0;
    }
    
    int main(){
    	scanf("%d%d%d",&n,&m,&k);
    	scanf("%d%d%d%d",B,B+1,E,E+1);
    	
    	for(int i=0;i<n;i++)
    	    for(int j=0;j<m;j++) M[i][j]=read();
    	
    	if(solve()) puts("Possible");
    	else puts("Impossible");
    	
    	return 0;
    }
    
  • 相关阅读:
    Majority Element
    Longest Increasing Subsequence
    Count Primes
    Valid Parentheses
    Largest Rectangle in Histogram
    Linked List Cycle II
    Linked List Cycle
    Evaluate Reverse Polish Notation
    Longest Valid Parentheses
    适配总结
  • 原文地址:https://www.cnblogs.com/JYYHH/p/9190675.html
Copyright © 2011-2022 走看看