游游拿到了一个数组,她每次可以进行如下操作: ·选择一个元素,使其除以2,向下取整。 游游想知道,她最少多少次操作可以使得所有元素相等?

区块链毕设网qklbishe.com为您提供问题的解答

游游拿到了一个数组,她每次可以进行如下操作:
·选择一个元素,使其除以2,向下取整。
游游想知道,她最少多少次操作可以使得所有元素相等?

不懂更好的数学方法,用multiset暴力做吧!

#include <bits/stdc++.h> using namespace std;  int main() {     int n;     cin >> n;     vector<int> a(n);     for (int i = 0; i < n; i++)         scanf("%d", &a[i]);     std::multiset<int> ms(a.begin(), a.end());     long long cnt = 0;     while (*ms.begin() != *ms.rbegin()) {         int num0 = *ms.begin(), num1 = *ms.rbegin();         while (num1 > num0) {             num1 /= 2;             cnt++;         }         ms.erase(std::prev(ms.end()));         ms.insert(num1);     }     std::cout << cnt; }

17:48

以上就是关于问题游游拿到了一个数组,她每次可以进行如下操作:
·选择一个元素,使其除以2,向下取整。
游游想知道,她最少多少次操作可以使得所有元素相等?的答案

欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。

区块链NFT链游项目方科学家脚本开发培训

从业7年-专注一级市场


微信:btc9767
TELEGRAM :https://t.me/btcok9

具体资料介绍

web3的一级市场千万收益的逻辑


进群点我



qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 游游拿到了一个数组,她每次可以进行如下操作: ·选择一个元素,使其除以2,向下取整。 游游想知道,她最少多少次操作可以使得所有元素相等?