题解 | #游游的除2操作#

游游的除2操作

https://www.nowcoder.com/practice/b797f46aa75145a0bbe112099f7cbd18

小白只会暴力模拟┭┮﹏┭┮

#include <bits/stdc++.h>
using namespace std;

int n;
int a[100005];
void solve()
{
    cin>>n;
    int mi=1e9;
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
        mi=min(mi,a[i]);
    }
    int cnt=0;
    while(1)
    {
        bool sign=1;
        for(int i=0;i<n;i++)
        {
            while(a[i]>mi)
            {
                a[i]/=2;
                cnt++;
            }
            if(a[i]<mi)//更新最小值
            {
                mi/=2;
                sign=0;
                break;
            }
        }
        if(sign)
        {
            cout<<cnt<<endl;
            return;
        }
    }
}
int main()
{
    solve();
}

牛客竞赛题解 文章被收录于专栏

个人向题解,用于存档

全部评论
完了没看懂·-·,为什么更新最小值后,直接break了?(不应该再重新遍历一遍吗)
点赞 回复 分享
发布于 2024-11-21 23:40 江苏

相关推荐

评论
2
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务