[关闭]
@PaulGuan 2016-10-02T11:10:30.000000Z 字数 410 阅读 650

F - Canvas Frames 题解

题解 第四周


题目大意

有n (1<=n<=100) 个不可分割和拼接的木棍,每个的长度为ai (1<=ai<=100) 求能拼出的最多的矩形框的数量。

分析

一个矩形的一对边是相等的,所以可以计算相同长度的木棍能凑齐多少条边,由于ai的范围较小,我们可以直接计数num[ai]。

代码

  1. #include <iostream>
  2. #include <algorithm>
  3. #include <cstring>
  4. using namespace std;
  5. int n;
  6. int flag[105];
  7. int ans=0;
  8. int main(void)
  9. {
  10. memset(flag,0,sizeof(flag));
  11. cin>>n;
  12. int i;
  13. for(i=0;i<n;i++)
  14. {
  15. int a;
  16. cin>>a;
  17. flag[a]++;
  18. }
  19. for(i=1;i<=100;i++)
  20. {
  21. ans+=flag[i]/2;
  22. }
  23. ans/=2;
  24. cout<<ans<<endl;
  25. return 0;
  26. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注