2 条题解

  • 1
    @ 2022-12-12 19:35:47
    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
    	
    	int x1, y1, x2, y2, s1, s2;
    	cin >> x1 >> y1 >> x2 >> y2;
    	int n = 18 * 4;//一圈总步数
    	//如果是上下两条线
    	if (abs(x1 - x2) == 18)
        {
    		//从左侧走
    		s1 = y1 - 1 + 18 + y2 - 1;  
    		s2 = n - s1; // 从右侧走
    	}
        else if (abs(y1 - y2) == 18)
        {
    		//从下面走
    		s1 = x1 - 1 + 18 + x2 - 1;
    		s2 = n - s1; //从上面走
    		//在一条线上
    	}
        else if (x1 == x2)
        {
    		s1 = abs(y1 - y2);//只能是这样解
    		s2 = n - s1;
    	}
        else if (y1 == y2)
        {
    		s1 = abs(x1 - x2);
    		s2 = n - s1;
    	}
        else//在相邻的边
        { 
    		s1 = abs(x1 - x2)  + abs(y1 - y2);
    		s2 = n - s1;
    	}
    	//输出更短的路径
    	if (s1 < s2)
        {
    		cout << s1;
    	}
        else
        {
    		cout << s2;
    	}
    	return 0;
    }//代码已AC
    
    • 0
      @ 2022-8-19 15:26:41
      #include <iostream>
      using namespace std;
      int main()
      {
          int a,b,c,d,ans[4],num=100;
          cin >> a >> b >> c >> d;
          for(int i=0;i<4;i++)
          {
              ans[i]=0;
          }
          if(d==b)
          {
              if(a==1 && c==19)
              {
                  for(int i=b;i>1;i--)
                  {
                      ans[0]++;
                  }
                  for(int i=a;i<19;i++)
                  {
                      ans[0]++;
                  }
                  for(int i=1;i<d;i++)
                  {
                      ans[0]++;
                  }
                  for(int i=b;i<19;i++)
                  {
                      ans[1]++;
                  }
                  for(int i=a;i<19;i++)
                  {
                      ans[1]++;
                  }
                  for(int i=19;i>d;i--)
                  {
                      ans[1]++;
                  }
                  if(ans[0]>ans[1])
                  {
                      cout << ans[1] << endl;
                  }
                  else 
                  {
                      cout << ans[0] << endl;
                  }
              }
              else if(a==19 && c==1)
              {
                  for(int i=b;i>1;i--)
                  {
                      ans[2]++;
                  }
                  for(int i=a;i>1;i--)
                  {
                      ans[2]++;
                  }
                  for(int i=b;i<d;i++)
                  {
                      ans[2]++;
                  }
                  for(int i=b;i<19;i++)
                  {
                      ans[3]++;
                  }
                  for(int i=a;i>1;i--)
                  {
                      ans[3]++;
                  }
                  for(int i=b;i>d;i--)
                  {
                      ans[3]++;
                  }
                  if(ans[2]>ans[3])
                  {
                      cout << ans[2] << endl;
                  }
                  else 
                  {
                      cout << ans[3] << endl;
                  }
              }
              else 
              {
                  if(a<=c)
                  {
                      for(int i=a;i<=19;i++)
                      {
                          a=i;
                          if(a==c)
                          {
                              break;
                          }
                          ans[0]++;
                      }
                      cout << ans[0] << endl;
                  }
                  else if(c<=a)
                  {
                      for(int i=a;i>=1;i--)
                      {
                          a=i;
                          if(a==c)
                          {
                              break;
                          }
                          ans[1]++;
                      }
                      cout << ans[1] << endl;
                  }
              }
          }
          else
          {
              if(b<d)
              {
                  for(int i=a;i>1;i--)
                  {
                      ans[0]++;
                  }
                  for(int i=b;i<d;i++)
                  {
                      ans[0]++;
                  }
                  for(int i=1;i<c;i++)
                  {
                      ans[0]++;   
                  }
                  for(int i=a;i<19;i++)
                  {
                      ans[1]++;
                  }
                  for(int i=b;i<d;i++)
                  {
                      ans[1]++;
                  }
                  for(int i=19;i>c;i--)
                  {
                      ans[1]++;
                  }
                  if(ans[0]>ans[1])
                  {
                      cout << ans[1] << endl;
                  }
                  else 
                  {
                      cout << ans[0] << endl;
                  }
              }
              else if(d<b)
              {
                  for(int i=a;i>1;i--)
                  {
                      ans[2]++;
                  }
                  for(int i=b;i>d;i--)
                  {
                      ans[2]++;
                  }
                  for(int i=1;i<c;i++)
                  {
                      ans[2]++;   
                  }
                  for(int i=b;i<19;i++)
                  {
                      ans[3]++;
                  }
                  for(int i=a;i<19;i++)
                  {
                      ans[3]++;
                  }
                  for(int i=19;i>d;i--)
                  {
                      ans[3]++;
                  }
                  for(int i=19;i>c;i--)
                  {
                      ans[3]++;
                  }
                  if(ans[2]>ans[3])
                  {
                      cout << ans[3] << endl;
                  }
                  else 
                  {
                      cout << ans[2] << endl;
                  }
              }
          }
          return 0;
      }
      
      • 1

      【入门】小 X 与机器人 (betago)

      信息

      ID
      530
      时间
      1000ms
      内存
      128MiB
      难度
      5
      标签
      递交数
      85
      已通过
      34
      上传者