标签:
题意:两个1合成一个2,两个2合成一个3,两个3合成一个4,以此类推,问最后剩下数的个数
题解:统计各个数的个数,按两个1合成一个2的思路,直接暴力枚举,时间复杂度O(n)。
#include <cstring> #include <cstdio> int a[1000030]; int main() { int n; scanf("%d",&n); int b; while(n--) { scanf("%d",&b); a[b]++; } int ans=0; for(int i=0;i<=1000020;i++) { a[i+1]+=a[i]/2; if(a[i]%2) ans++; } printf("%d\n", ans); return 0; }
标签:
原文地址:http://www.cnblogs.com/mgxj/p/5525939.html