这次入门赛G题怎么做啊!!!
  • 板块灌水区
  • 楼主DGL__DGL_AFO
  • 当前回复22
  • 已保存回复23
  • 发布时间2024/1/19 21:13
  • 上次更新2024/1/20 08:26:29
查看原帖
这次入门赛G题怎么做啊!!!
989997
DGL__DGL_AFO楼主2024/1/19 21:13

rt

蒟蒻调了一个多小时没调出来

#include<bits/stdc++.h>
using namespace std;
long long ans,n,q,k,p;
long long w[114],s[114];
int main()
{
	int res=0;
	cin>>n>>q;
	while(n)
	{
		res++;
		w[res]=n%2;
		n/=2;
	}
	s[0]=1;
	s[1]=2;
	for(int i=2;i<=40;i++)
	  s[i]=s[i-1]*2;
	while(q--)  
	{
		cin>>k;
		if(w[k]!=1)
		{
			for(int i=1;i<k;i++)
			  if(w[i]==2)
			  {
			  	w[i]=0;
			  	w[i+1]++;
				}
			  else if(w[i]==1)
			  {
			  	ans+=s[i-1];
			  	w[i]=0;
			  	w[i+1]++;
				}
				else if(w[i]==0)
				{
					ans+=s[i];
					w[i+1]++;
				}
			//cout<<ans<<endl;
		}
		
	}
	cout<<ans;
	
	return 0;
}

QwQ

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