ผลต่างระหว่างรุ่นของ "01204212/nearby search"
ไปยังการนำทาง
ไปยังการค้นหา
Jittat (คุย | มีส่วนร่วม) |
Jittat (คุย | มีส่วนร่วม) |
||
(ไม่แสดง 2 รุ่นระหว่างกลางโดยผู้ใช้คนเดียวกัน) | |||
แถว 10: | แถว 10: | ||
'''Test data:''' Download [http://theory.cpe.ku.ac.th/~jittat/courses/01204212/tasks/nearby/ here] | '''Test data:''' Download [http://theory.cpe.ku.ac.th/~jittat/courses/01204212/tasks/nearby/ here] | ||
+ | |||
+ | '''A few answers:''' | ||
+ | |||
+ | * n100: 5 | ||
+ | * n1000: 311 | ||
+ | * n5000: 7803 | ||
+ | * n10000: 31072 | ||
+ | |||
+ | == Some code == | ||
+ | === GameObject === | ||
+ | <syntaxhighlight lang="java"> | ||
+ | public class GameObject { | ||
+ | |||
+ | private double x; | ||
+ | private double y; | ||
+ | |||
+ | GameObject(double x, double y) { | ||
+ | this.setX(x); | ||
+ | this.setY(y); | ||
+ | } | ||
+ | |||
+ | public double distanceTo(GameObject o) { | ||
+ | return Math.sqrt((getX() - o.getX()) * (getX() - o.getX()) + | ||
+ | (getY() - o.getY()) * (getY() - o.getY())); | ||
+ | } | ||
+ | |||
+ | public double getX() { | ||
+ | return x; | ||
+ | } | ||
+ | |||
+ | public void setX(double x) { | ||
+ | this.x = x; | ||
+ | } | ||
+ | |||
+ | public double getY() { | ||
+ | return y; | ||
+ | } | ||
+ | |||
+ | public void setY(double y) { | ||
+ | this.y = y; | ||
+ | } | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | === Player === | ||
+ | <syntaxhighlight lang="java"> | ||
+ | public class Player extends GameObject { | ||
+ | |||
+ | Player(double x, double y) { | ||
+ | super(x, y); | ||
+ | } | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | === Monster === | ||
+ | <syntaxhighlight lang="java"> | ||
+ | public class Monster extends GameObject { | ||
+ | |||
+ | Monster(double x, double y) { | ||
+ | super(x, y); | ||
+ | } | ||
+ | |||
+ | } | ||
+ | </syntaxhighlight> |
รุ่นแก้ไขปัจจุบันเมื่อ 04:16, 11 สิงหาคม 2559
- From 01204212-59
You are given a locations of players, monsters, and the radius. Output the total number of monsters seen by any players.
Input format:
- First line: n m r (where n is the number of players, m is the number of monsters, and r is a radius)
- The next n lines, for each line the co-ordinate for each player: x y
- The next m lines, for each line the co-ordinate for each monster: x y
Test data: Download here
A few answers:
- n100: 5
- n1000: 311
- n5000: 7803
- n10000: 31072
Some code
GameObject
public class GameObject {
private double x;
private double y;
GameObject(double x, double y) {
this.setX(x);
this.setY(y);
}
public double distanceTo(GameObject o) {
return Math.sqrt((getX() - o.getX()) * (getX() - o.getX()) +
(getY() - o.getY()) * (getY() - o.getY()));
}
public double getX() {
return x;
}
public void setX(double x) {
this.x = x;
}
public double getY() {
return y;
}
public void setY(double y) {
this.y = y;
}
}
Player
public class Player extends GameObject {
Player(double x, double y) {
super(x, y);
}
}
Monster
public class Monster extends GameObject {
Monster(double x, double y) {
super(x, y);
}
}