记录编号 604817 评测结果 AAAAAAAAAA
题目名称 3451.Power Calculus 最终得分 100
用户昵称 GravatarRuyi 是否通过 通过
代码语言 C++ 运行时间 6.097 s
提交时间 2025-08-12 07:59:34 内存使用 3.67 MiB
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int num,n,s[101];
bool dfs(int t,int m){
    if(t>num||m<=0||m<<(num-t)<n) return true;
    if(m==n||m<<(num-t)==n) return false;
    s[t]=m;
    for(int i=0;i<=t;i++){
        if(!dfs(t+1,m+s[i])) return false;
        if(!dfs(t+1,m-s[i])) return false;
    }
    return true;
}
int main(){
    freopen("pow_cal.in","r",stdin);
    freopen("pow_cal.out","w",stdout);
    cin>>n;
    while(n!=0){
        num=0;
        while(dfs(0,1)) num++;
        cout<<num<<endl;
        cin>>n;
    }
    return 0;
}