- 烦人的幻灯片(slides)
100
- @ 2025-9-30 19:52:40
#include #include #include #include
using namespace std;
struct Slide { int xmin, xmax, ymin, ymax; } slides[26];
struct Point { int x, y; } points[26];
bool possible[26][26]; // possible[i][j]表示数字i+1可能在幻灯片j(A=0,B=1...)上 bool used_num[26]; // 标记数字是否已被匹配 bool used_slide[26]; // 标记幻灯片是否已被匹配 pair<char, int> result[26]; // 存储匹配结果
int main() { int n; cin >> n;
// 读取幻灯片坐标
for (int i = 0; i < n; ++i) {
cin >> slides[i].xmin >> slides[i].xmax >> slides[i].ymin >> slides[i].ymax;
}
// 读取数字坐标并初始化可能的对应关系
for (int i = 0; i < n; ++i) {
cin >> points[i].x >> points[i].y;
for (int j = 0; j < n; ++j) {
// 检查数字i+1的坐标是否在幻灯片j的范围内
if (points[i].x >= slides[j].xmin && points[i].x <= slides[j].xmax &&
points[i].y >= slides[j].ymin && points[i].y <= slides[j].ymax) {
possible[i][j] = true;
} else {
possible[i][j] = false;
}
}
}
memset(used_num, false, sizeof(used_num));
memset(used_slide, false, sizeof(used_slide));
int count = 0;
// 循环寻找唯一匹配的数字和幻灯片
while (count < n) {
bool found = false;
// 检查每个数字是否只有一个可能的幻灯片
for (int i = 0; i < n; ++i) {
if (used_num[i]) continue;
int cnt = 0;
int slide = -1;
for (int j = 0; j < n; ++j) {
if (!used_slide[j] && possible[i][j]) {
cnt++;
slide = j;
}
}
if (cnt == 1) { // 找到唯一匹配
result[slide] = { 'A' + slide, i + 1 };
used_num[i] = true;
used_slide[slide] = true;
count++;
found = true;
break;
}
}
if (found) continue;
// 检查每个幻灯片是否只有一个可能的数字
for (int j = 0; j < n; ++j) {
if (used_slide[j]) continue;
int cnt = 0;
int num = -1;
for (int i = 0; i < n; ++i) {
if (!used_num[i] && possible[i][j]) {
cnt++;
num = i;
}
}
if (cnt == 1) { // 找到唯一匹配
result[j] = { 'A' + j, num + 1 };
used_num[num] = true;
used_slide[j] = true;
count++;
found = true;
break;
}
}
if (!found) break; // 未找到唯一匹配,无法确定对应关系
}
// 输出结果
if (count == n) {
for (int i = 0; i < n; ++i) {
cout << result[i].first << " " << result[i].second << endl;
}
} else {
cout << "None" << endl;
}
return 0;
}
1 条评论
-
俞添 LV 6 @ 2025-12-20 21:12:03AI味满满
- 1
信息
- ID
- 398
- 时间
- ms
- 内存
- MiB
- 难度
- 8
- 标签
- 递交数
- 25
- 已通过
- 4
- 上传者