solution-at4156

AT4156题解

posted on 2021-12-15 06:06:38 | under 题解 | source

题面

本题是一道贪心题,对于每一个 \(a_i\),乘 3 是没有影响的(不管怎么乘都是整数)。但是除以 2 是有次数限制的,最多是 \(a_i\) 含有的 2 的个数。贪心的策略就出来了:每次只对 1 个还可以除以 2 的 \(a_i\) 进行处于 2 操作,则操作次数就是所有 \(a_i\) 含有 2 的个数的和。

代码

  #include<bits/stdc++.h>
  using namespace std;
  int n,a,ans;
  int main()
  {
      scanf("%d",&n);
      for(int i=1;i<=n;i++){
          scanf("%d",&a);
          while(a%2==0)ans++,a/=2;//累加
      }
      printf("%d",ans);
      return 0;
  }
posted @ 2025-02-25 15:30  Grisses  阅读(5)  评论(0)    收藏  举报
Document