传送门:Parallelograms
题意:若干个棍子,求能最多组成多少个平行四边形
分析:统计不同长度的棍子数目,用一个变量tot加上每个长度棍子数目/2, 最后输出tot/2
每个长度的棍子要在一个平行四边形内使用两根,最后还要任意2组的长度的棍子搭配~
一开始以为可以不同长度的棍子拼接成一条边使用,就思考了好久没搞出来TAT
代码如下:
#include <cstdio>
using namespace std;
const int maxn = 200000+10;
int a[maxn],x;
int n,tot;
int main(){
scanf("%d",&n);
for (int i=1; i<=n; i++) {
scanf("%d",&x);
a[x]++;
}
for (int i=1; i<maxn; i++) tot+=a[i]/2;
tot>>=1;
printf("%d\n",tot);
return 0;
}