题意:给你4*n个木棒,问你能否组成n个面积相等的矩形。
题解:排序,若能组成,那么矩形的面积一定是 a[0]*a[n*4-1] ,依次用最小的乘以最大的判断面积即可
#include<iostream> #include<string.h> #include<string> #include<algorithm> #include<math.h> #include<string> #include<string.h> #include<vector> #include<utility> #include<map> #include<queue> #include<set> #define mx 0x3f3f3f3f #define ll long long using namespace std; int n,t; int a[500]; int main() { int t; cin>>t; while(t--) { cin>>n; for(int i=0;i<4*n;i++) cin>>a[i]; sort(a,a+4*n); int s=a[0]*a[4*n-1]; int cnt=0,j=4*n-1; for(int i=0;i<2*n-1;) { if(a[i]*a[j]==s&&a[i]==a[i+1]&&a[j]==a[j-1])//还要判断相邻的边是否相等 { cnt++; i=i+2; j=j-2; } else break; } if(cnt==n) cout<<"YES"<<endl; else cout<<"NO"<<endl; } }