mirror of
https://git.sb/baoshuo/OI-codes.git
synced 2024-12-18 04:51:59 +00:00
parent
36f6186573
commit
3c2f792e15
69
vjudge/problem/HDU/6080/6080.cpp
Normal file
69
vjudge/problem/HDU/6080/6080.cpp
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
#include <bits/stdc++.h>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
int n, m, ans, dp[505][505];
|
||||||
|
|
||||||
|
struct node {
|
||||||
|
int x, y;
|
||||||
|
|
||||||
|
node() {}
|
||||||
|
node(int _x, int _y) {
|
||||||
|
x = _x;
|
||||||
|
y = _y;
|
||||||
|
}
|
||||||
|
node operator-(node B) {
|
||||||
|
return node(x - B.x, y - B.y);
|
||||||
|
}
|
||||||
|
} hou[505], fri[505];
|
||||||
|
|
||||||
|
inline int det(node A, node B) {
|
||||||
|
return A.x * B.y - A.y * B.x;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
while (cin >> n) {
|
||||||
|
for (int i = 1; i <= n; i++) {
|
||||||
|
cin >> hou[i].x >> hou[i].y;
|
||||||
|
}
|
||||||
|
cin >> m;
|
||||||
|
for (int i = 1; i <= m; i++) {
|
||||||
|
cin >> fri[i].x >> fri[i].y;
|
||||||
|
}
|
||||||
|
for (int i = 1; i <= m; i++) {
|
||||||
|
for (int j = 1; j <= m; j++) {
|
||||||
|
dp[i][j] = -1;
|
||||||
|
if (i == j) continue;
|
||||||
|
bool ok = true;
|
||||||
|
for (int k = 1; k <= n; k++)
|
||||||
|
if (det(hou[k] - fri[i], fri[j] - fri[i]) > 0) {
|
||||||
|
ok = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (ok) {
|
||||||
|
dp[i][j] = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (int k = 1; k <= m; k++) {
|
||||||
|
for (int i = 1; i <= m; i++) {
|
||||||
|
if (dp[i][k] == -1) continue;
|
||||||
|
for (int j = 1; j <= m; j++) {
|
||||||
|
if (dp[k][j] == -1) continue;
|
||||||
|
dp[i][j] = dp[i][j] == -1 ? dp[i][k] + dp[k][j] : min(dp[i][j], dp[i][k] + dp[k][j]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ans = -1;
|
||||||
|
for (int i = 1; i <= m; i++) {
|
||||||
|
if (dp[i][i] == -1) continue;
|
||||||
|
ans = ans == -1 ? dp[i][i] : min(ans, dp[i][i]);
|
||||||
|
}
|
||||||
|
if (ans == -1) {
|
||||||
|
cout << "ToT" << endl;
|
||||||
|
} else {
|
||||||
|
cout << m - ans << endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user