比赛 2025暑期集训第7场 评测结果 AAAAAAAAAA
题目名称 Power Calculus 最终得分 100
用户昵称 zhyn 运行时间 4.540 s
代码语言 C++ 内存使用 3.67 MiB
提交时间 2025-08-11 17:27:10
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;

int dep=1;
bool flag;
int n;

int rec[114514];

void dfs(int s,int nx){
	if(s>dep||nx<0){
		return;
	}
	if(flag||nx<<(dep-s)<n){
		return;
	} 
	if(nx<<(dep-s)==n){
		flag=true;
	}
	if(nx==n){
		flag=true;
	}
	rec[s]=nx;
	for(int i=0;i<=s;i++){
		dfs(s+1,nx+rec[i]);
		dfs(s+1,nx-rec[i]);
	}
}

int main(){
	
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	
	freopen("pow_cal.in","r",stdin);
	freopen("pow_cal.out","w",stdout); 
	
	while(cin>>n){
		if(n==0){
			return 0;
		}
		dep=0;
		flag=false;
		for(;;dep++){
			dfs(0,1);
			if(flag){
				cout<<dep<<"\n";
				break;
			}
		}
	}
	
	
	
	
	return 0;
}