求助 G
  • 板块灌水区
  • 楼主crzcqh
  • 当前回复6
  • 已保存回复6
  • 发布时间2024/1/19 21:32
  • 上次更新2024/1/20 09:33:00
查看原帖
求助 G
769006
crzcqh楼主2024/1/19 21:32
#include<bits/stdc++.h>
using namespace std;  
typedef long long ll;
ll n,q,k,ans,x; 
int main(){
	cin>>n>>q;
	while(q--){
		cin>>k;
		if(n>>k&1==1) continue;
		x=(1<<k)-(n&((1<<k)-1));
		n+=x,ans+=x;
	}
	cout<<ans;
	return 0;
}

思路:如果说第 kk 位不为 0,则最少增加 1<<k1<<k - 原有的后 kk 位。

2024/1/19 21:32
加载中...