#include<vector>
#include<math.h>
#include<iostream>
#include<algorithm>
using namespace std;
#define MAXSIZE 15001
//1000000000
struct node{
int A = 0;
int B = 0;
int C = 0;
int D = 0;
int L = 0;
int book = 0;
};
std::vector<node> v;
std::vector<node> vAns;
std::vector<int> inArr;
node nodeArr[MAXSIZE]; // TODO
int arr[MAXSIZE] = { 0 };
int ans[5][MAXSIZE] = { 0 };
int main()
{
int n = 0, m = 0;
int x = 0;
int A = 0, B = 0, C = 0, D = 0;
cin >> n >> m;
for (int i = 1; i <= m; i++)
{
cin >> x;
arr[x] += 1;
inArr.push_back(x);
nodeArr[x].book = 1;
}
for (int L = 1; L < n; L++)
{
for (int i = 0; i < MAXSIZE; i++)
{
if (arr[i] >= 1)// 假设当前的点是A
{
A = i;
if (arr[A + 2 * L] >= 1)// B存在
{
B = A + 2 * L;
node temp;
temp.A = A;
temp.B = B;
temp.L = L;
v.push_back(temp);
}
}
}
}
for (int i = 0; i < v.size(); i++)
{
for (int j = 1; j < n; j++)// TODO
{
if (v[i].B + 6 * v[i].L + j < n && arr[v[i].B + 6 * v[i].L + j] >= 1)// 找到ABCD成立的情况
{
v[i].C = v[i].B + 6 * v[i].L + j;
if (v[i].B + 6 * v[i].L + j < n && arr[v[i].L + v[i].C] >= 1)
{
v[i].D = v[i].L + v[i].C;
vAns.push_back(v[i]);
nodeArr[v[i].A].A += 1;
nodeArr[v[i].B].B += 1;
nodeArr[v[i].C].C += 1;
nodeArr[v[i].D].D += 1;
if (arr[v[i].A] > 1 || arr[v[i].B] > 1 || arr[v[i].C] > 1 || arr[v[i].D] > 1)
{
int temp1 = max(arr[v[i].A], arr[v[i].B]);
int temp2 = max(arr[v[i].C], arr[v[i].D]);
temp1 = max(temp1, temp2);
nodeArr[v[i].A].A *= temp1;
nodeArr[v[i].B].B *= temp1;
nodeArr[v[i].C].C *= temp1;
nodeArr[v[i].D].D *= temp1;
}
/*ans[1][v[i].A] += 1;
ans[2][v[i].B] += 1;
ans[3][v[i].C] += 1;
ans[4][v[i].D] += 1;*/
}
}
}
}
//for (int i = 0; i < MAXSIZE; i++)
//{
// if (arr[i] > 1)
// {
// vAns
// }
//}
for (int i = 0; i < inArr.size(); i++)
{
if (nodeArr[inArr[i]].book >= 1)
{
//if (arr[inArr[i]]>=)
cout << nodeArr[inArr[i]].A << " " << nodeArr[inArr[i]].B << " " << nodeArr[inArr[i]].C << " " << nodeArr[inArr[i]].D << endl;
}
}
return 0;
}
【noip题目代码】魔法阵;模拟,iterator,
最新推荐文章于 2025-10-31 21:47:50 发布
本文展示了一个使用 C++ 实现的复杂图形算法案例,通过遍历数组寻找符合条件的四边形组合,并对这些组合进行特定操作。该算法涉及结构体定义、向量容器运用及多层循环匹配等技术细节。

3174

被折叠的 条评论
为什么被折叠?



