zoukankan      html  css  js  c++  java
  • [atARC103D]Robot Arms

    合法的必要条件是每个点两维坐标和奇偶性相同,同时这也是充分条件

    令$d_{i}={2^{0},2^{1},...,2^{m-1}}$,归纳其可以走到任意满足$|x|+|y|<2^{m}$的$(x,y)$,考虑先确定其最后一步,即对于$|x|+|y|<2^{m+1}$,通过$d=2^{m}$使其走到$|x'|+|y'|<2^{m}$的位置

    不妨假设$|x|<|y|$,则有$|x|<2^{m}$,然后令$y'=y-sign(y)cdot 2^{m}$,对$|y|$分类讨论:

    1.$|y|<2^{m}$,此时$|x|+|y'|=|x|+2^{m}-|y|<2^{m}$

    2.$|y|ge 2^{m}$,此时$|x|+|y'|=|x|+|y|-2^{m}<2^{m+1}-2^{m}=2^{m}$

    还有初始条件,当$d={2^{0}}$,发现要保证$|x|+|y|=1$才合法,换言之若两个数和为偶数则不合法,对于这种情况,强制先走到$(1,0)$即可

    由此,即证明上述结论,同时得出构造方法

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 #define N 1005
     4 int n,x[N],y[N];
     5 int sign(int k){
     6     if (k>0)return 1;
     7     return -1;
     8 }
     9 int main(){
    10     scanf("%d",&n);
    11     for(int i=1;i<=n;i++)scanf("%d%d",&x[i],&y[i]);
    12     int p=(abs(x[1]+y[1])&1);
    13     for(int i=2;i<=n;i++)
    14         if ((abs(x[i]+y[i])&1)!=p){
    15             printf("-1");
    16             return 0;
    17         }
    18     printf("%d
    ",(31+(!p)));
    19     for(int i=30;i>=0;i--)printf("%d ",(1<<i));
    20     if (!p){
    21         printf("1");
    22         for(int i=1;i<=n;i++)x[i]--;
    23     }
    24     printf("
    ");
    25     for(int i=1;i<=n;i++){
    26         for(int j=30;j>=0;j--){
    27             if (abs(x[i])<abs(y[i])){
    28                 if (y[i]>0)printf("U");
    29                 else printf("D");
    30                 y[i]=y[i]-sign(y[i])*(1<<j);
    31             }
    32             else{
    33                 if (x[i]>0)printf("R");
    34                 else printf("L");
    35                 x[i]=x[i]-sign(x[i])*(1<<j);
    36             }
    37         }
    38         if (!p)printf("R");
    39         printf("
    ");
    40     }
    41 } 
    View Code
  • 相关阅读:
    poj 1789 Truck History(最小生成树)
    POJ 3096 Surprising Strings(STL map string set vector)
    hdu 1412 (STL list)
    POJ 1552 Doubles (C++ STL set使用)
    poj 水题系列
    洛谷P4859 已经没有什么好害怕的了
    CF1228E Another Filling the Grid
    二项式反演
    AT [ABC177F] I hate Shortest Path Problem
    [NOI2020]制作菜品
  • 原文地址:https://www.cnblogs.com/PYWBKTDA/p/13935136.html
Copyright © 2011-2022 走看看