```java
package ___2022年省赛Java大学A组;

  1. import java.util.Scanner;
  2. /**
  3. *
  4. * @author Wzi
  5. *
  6. *我们以 O 为原点定义坐标系,如果一个点 A 由 O 点先向 d 方向走 p 步
  7. *再向 (d + 2) mod 6 方向(d 的顺时针 120◦ 方向)走 q 步到达
  8. *
  9. *即先确认一个方向d开始走p步,然后接下来每次都遵循走当前方向的120°方向走q步
  10. *则这个点的坐标定义为 (d, p, q)。
  11. */
  12. public class 蜂巢 {
  13. private static int d1, p1, q1, d2, p2, q2;
  14. private static double [] x_way = {-1,-0.5,0.5,1,0.5,-0.5};
  15. private static double [] y_way = {0,1,1,0,-1,-1};
  16. public static void main(String[] args) {
  17. Scanner sc = new Scanner(System.in);
  18. while(sc.hasNext()) {
  19. int d1 = sc.nextInt();
  20. int p1 = sc.nextInt();
  21. int q1 = sc.nextInt();
  22. int d2 = sc.nextInt();
  23. int p2 = sc.nextInt();
  24. int q2 = sc.nextInt();
  25. //模拟行动轨迹
  26. double x1 =0,x2=0,y1=0,y2=0;
  27. x1+=x_way[d1]*p1 +x_way[(d1+2)%6]*q1;
  28. y1+=y_way[d1]*p1 +y_way[(d1+2)%6]*q1;
  29. x2+=x_way[d2]*p2 +x_way[(d2+2)%6]*q2;
  30. y2+=y_way[d2]*p2 +y_way[(d2+2)%6]*q2;
  31. double xloc = Math.abs(x2-x1);
  32. double yloc = Math.abs(y2-y1);
  33. int res = (int) yloc;
  34. if(xloc -yloc/2 > 0) {
  35. res+=Math.abs(xloc-yloc/2);
  36. }
  37. System.out.println(res);
  38. }
  39. }
  40. }
点赞(0)
 

0 分

0 人评分

 

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论