• Round 1B 2020


    只有第一次移动步长1是奇数,后面都是偶数,所以x和y必定一个为奇数一个为偶数。

    每次可以把步长加在x或者y的前面或者后面,四种分支DFS。

     1 #define HAVE_STRUCT_TIMESPEC
     2 #include <bits/stdc++.h>
     3 using namespace std;
     4 long long t;
     5 long long maxmi;
     6 long long ans[2][100];
     7 bool dfs(long long x,long long y,long long mi){
     8     maxmi=mi;
     9     if(x==0&&y==0)
    10         return true;
    11     if((x&1)&&(y&1))
    12         return false;
    13     if(!(x&1)&&!(y&1))
    14         return false;
    15     bool r;
    16     if(x&1){
    17         ans[0][mi]=1;
    18         r=dfs((x-1)/2,y/2,mi+1);
    19         if(r)
    20             return true;
    21         ans[0][mi]=-1;
    22         return dfs((x+1)/2,y/2,mi+1);
    23     }
    24     else{//y&1
    25         ans[1][mi]=1;
    26         r=dfs(x/2,(y-1)/2,mi+1);
    27         if(r)
    28             return true;
    29         ans[1][mi]=-1;
    30         return dfs(x/2,(y+1)/2,mi+1);
    31     }
    32     return false;
    33 }
    34 int main(){
    35     cin>>t;
    36     for(int i=0;i<t;++i){
    37         long long x,y;
    38         scanf("%lld%lld",&x,&y);
    39         long long mx=x<0?-1:1;
    40         long long my=y<0?-1:1;
    41         x=abs(x);
    42         y=abs(y);
    43         maxmi=0;
    44         for(int j=0;j<33;++j){
    45             ans[0][j]= 0;
    46             ans[1][j]= 0;
    47         }
    48         bool r=dfs(x,y,0);
    49         if(!r){
    50             printf("Case #%d: IMPOSSIBLE
    ",i+1);
    51             continue;
    52         }
    53         printf("Case #%d: ",i+1);
    54         for(int j=0;j<=maxmi;++j){
    55         if(ans[0][j]*mx==1)
    56             printf("E");
    57         if(ans[0][j]*mx==-1)
    58             printf("W");
    59         if(ans[1][j]*my==1)
    60             printf("N");
    61         if(ans[1][j]*my==-1)
    62             printf("S");
    63         }
    64         printf("
    ");
    65     }
    66     return 0;
    67 }
  • 相关阅读:
    使用Apache Curator监控Zookeeper的Node和Path的状态
    mongo创建用户
    window下关闭nginx
    spring 下载地址
    Quartz Spring与Spring Task总结
    oracle 11g 空表也导出
    修改oracle字符集
    linux 查看最大文件
    JAVA https证书相关
    抽象类与接口
  • 原文地址:https://www.cnblogs.com/ldudxy/p/12737511.html
Copyright © 2020-2023  润新知