博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【CodeForces 1277B --- Make Them Odd】
阅读量:2038 次
发布时间:2019-04-28

本文共 2117 字,大约阅读时间需要 7 分钟。

【CodeForces 1277B --- Make Them Odd】

题目来源:

Description

There are n positive integers a1,a2,…,an. For the one move you can choose any even value c and divide by two all elements that equal c.

For example, if a=[6,8,12,6,3,12] and you choose c=6, and a is transformed into a=[3,8,12,3,3,12] after the move.

You need to find the minimal number of moves for transforming a to an array of only odd integers (each element shouldn’t be divisible by 2).

Input

The first line of the input contains one integer t (1≤t≤104) — the number of test cases in the input. Then t test cases follow.

The first line of a test case contains n (1≤n≤2⋅105) — the number of integers in the sequence a. The second line contains positive integers a1,a2,…,an (1≤ai≤109).

The sum of n for all test cases in the input doesn’t exceed 2⋅105.

Output

For t test cases print the answers in the order of test cases in the input. The answer for the test case is the minimal number of moves needed to make all numbers in the test case odd (i.e. not divisible by 2).

Sample Input

4

6
40 6 40 3 20 1
1
1024
4
2 4 8 16
3
3 1 7

Sample Output

4

10
4
0

Note

In the first test case of the example, the optimal sequence of moves can be as follows:

before making moves a=[40,6,40,3,20,1];

choose c=6;
now a=[40,3,40,3,20,1];
choose c=40;
now a=[20,3,20,3,20,1];
choose c=20;
now a=[10,3,10,3,10,1];
choose c=10;
now a=[5,3,5,3,5,1] — all numbers are odd.
Thus, all numbers became odd after 4 moves. In 3 or fewer moves, you cannot make them all odd.

AC代码:

#include 
using namespace std;#define SIS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)#define endl '\n'using ll = long long;int main(){
SIS; int T; cin >> T; while(T--) {
int n,m=0,x,ans=0; cin >> n; set
s; for(int i=0;i
> x; if(x&1) continue; s.insert(x); } while(!s.empty()) {
ans++; x=*s.rbegin(); s.erase(x); x>>=1; if(x&1) continue; s.insert(x); } cout << ans << endl; } return 0;}

转载地址:http://wpyof.baihongyu.com/

你可能感兴趣的文章
oracle键、索引、约束及其区别
查看>>
解决activemq多消费者并发处理
查看>>
关于Class.getResource和ClassLoader.getResource的路径问题
查看>>
UDP连接和TCP连接的异同
查看>>
hibernate 时间段查询
查看>>
java操作cookie 实现两周内自动登录
查看>>
jstl 中获得session 里面值sessionScope
查看>>
Spring事务中涉及到多线程的处理方式
查看>>
实现页面登录后仍然跳回当前页面
查看>>
Jmeter 测试java并发
查看>>
简单java程序测试并发数
查看>>
Java出现No enclosing instance of type E is accessible
查看>>
java CountDownLatch测试并发数
查看>>
缓存穿透、缓存并发、缓存失效之思路变迁
查看>>
利用redis + lua解决抢红包高并发的问题
查看>>
一次查询耗时的分析过程
查看>>
Jmeter中的几个重要测试指标释义
查看>>
Tomcat 7优化前及优化后的性能对比
查看>>
VisualVM 提示 tomcat 不受此jvm支持解决办法
查看>>
如何在excel每一行数据后面都加一个逗号
查看>>