关注
import java.util.Scanner; public class Main2 { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNext()) { long start=System.currentTimeMillis(); //获取开始时间 int n = in.nextInt(); int[][] a = new int[n][4]; for (int i = 0; i < n; i++) { a[i][0] = in.nextInt(); a[i][1] = in.nextInt(); a[i][2] = in.nextInt(); a[i][3] = in.nextInt(); } Position[] bPos = new Position[n]; double max = Double.MAX_VALUE; double time = 0.00; //time控制到 (t-1, t+1) for (int t = 0; t < 10; t++) { //所有点当前位置 for (int i = 0; i < n; i++) { double x = a[i][0]; double y = a[i][1]; double vx = a[i][2]; double vy = a[i][3]; bPos[i] = getPosition(x, y, vx, vy, t); } //所有点距离最远的 double length = getMaxLength(bPos); if (length < max) { max = length; time = t; } } //time控制到 (t-0.1, t+0.1) for (double t = time - 1.0; t < time + 1.0;) { //所有点当前位置 for (int i = 0; i < n; i++) { double x = a[i][0]; double y = a[i][1]; double vx = a[i][2]; double vy = a[i][3]; bPos[i] = getPosition(x, y, vx, vy, t); } //所有点距离最远的 double length = getMaxLength(bPos); if (length < max) { max = length; time = t; } t += 0.1; } //找到精确time for (double t = time - 0.1; t < time + 0.1;) { //所有点当前位置 for (int i = 0; i < n; i++) { double x = a[i][0]; double y = a[i][1]; double vx = a[i][2]; double vy = a[i][3]; bPos[i] = getPosition(x, y, vx, vy, t); } //所有点距离最远的 double length = getMaxLength(bPos); if (length < max) { max = length; time = t; } t += 0.01; } System.out.println(String.format("%.2f", time) + " " + String.format("%.2f", Math.sqrt(max))); //要测试的程序或方法 long end=System.currentTimeMillis(); //获取结束时间 System.out.println("程序运行时间: "+(end-start)+"ms"); } } static class Position { double x; double y; public Position(double x, double y) { this.x = x; this.y = y; } } static Position getPosition(double x, double y, double vx, double vy, double t) { double posX = x + t * vx; double posY = y + t * vy; Position position = new Position(posX, posY); return position; } static double getLength(Position pos1, Position pos2) { double x = pos1.x - pos2.x; double y = pos1.y - pos2.y; return x * x + y * y; } static double getMaxLength(Position[] positions) { double max = 0.00; for (int i = 0; i < positions.length - 1; i++) { for (int j = i; j < positions.length; j++) { double length = getLength(positions[i], positions[j]); if (length > max) { max = length; } } } return max; } }
查看原帖
点赞 1
相关推荐
点赞 评论 收藏
分享
专业嗎喽:硕佬,把学校背景放后面几段,学校背景双非还学院,让人看了就不想往下看。
把实习经历和个人奖项放前面,用数字化简述自己实习的成果和掌握的技能,比如负责项目一次通过率90%,曾4次发现项目潜在问题风险为公司减少损失等等 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 实习简历求拷打 #
5536次浏览 67人参与
# 你会为了工作牺牲生活吗? #
66716次浏览 454人参与
# 秋招被挂春招仍然能投的公司 #
4923次浏览 81人参与
# 考研失败就一定是坏事吗? #
198840次浏览 1355人参与
# 什么是优秀的实习经历 #
6710次浏览 191人参与
# 为了求职,我做过的疯狂伪装 #
75395次浏览 763人参与
# mt对你说过最有启发的一句话 #
29712次浏览 365人参与
# 牛友们,签完三方你在忙什么? #
128631次浏览 981人参与
# 摸鱼被leader发现了怎么办 #
96406次浏览 619人参与
# 巨人网络工作体验 #
71066次浏览 502人参与
# 你今年的保底offer是哪家 #
154473次浏览 670人参与
# 秋招特别不鸣谢 #
13516次浏览 169人参与
# 你投递的公司有几家约面了? #
153783次浏览 990人参与
# 第一次面试 #
1035424次浏览 13679人参与
# 今年秋招你收到了多少封邮件? #
16572次浏览 216人参与
# 工作中遇到的歹人 #
24459次浏览 285人参与
# 选实习,你更看重哪方面? #
11445次浏览 201人参与
# 携程求职进展汇总 #
837881次浏览 5500人参与
# 滴!实习打卡 #
749073次浏览 6762人参与
# 毕业论文进行时 #
20431次浏览 127人参与