链接
题解
第一次见识了取消流同步之后同时用 c o u t cout cout和 p r i n t f printf printf的后果…
输出会变得很混乱,然后就莫名其妙 W A \color{red}WA WA
这题就是直接先判断一下每种边是不是都有偶数个,如果满足的话就把所有边个数除以 2 2 2然后排个序
每次选择首尾两个数字(代表了四条边)组成矩形
代码
#include <bits/stdc++.h>
#define linf (1ll<<60)
#define iinf 0x3f3f3f3f
#define rep(_,__) for(_=1;_<=(__);_++)
using namespace std;
#define maxn 100010
typedef long long ll;
ll cnt[10010];
int main()
{
ios::sync_with_stdio(false);
ll i, n, x, T;
cin>>T;
while(T--)
{
deque<ll> q;
cin>>n;
rep(i,10000)cnt[i]=0;
rep(i,4*n)
{
cin>>x;
cnt[x]++;
}
rep(i,10000)
if(cnt[i]%2==1)break;
if(i<=10000)
{
cout<<"NO\n";
continue;
}
rep(i,10000)
{
cnt[i]/=2;
while(cnt[i]--)q.emplace_back(i);
}
set<ll> s;
while(!q.empty())
{
s.emplace( q.front()*q.back() );
q.pop_front(), q.pop_back();
}
if(s.size()==1)cout<<"YES\n";
else cout<<"NO\n";
}
return 0;
}