WA 求助
查看原帖
WA 求助
547908
NightTide楼主2022/8/3 14:55

感觉没有问题了,但就是 WA,求助

#include<bits/stdc++.h>
#define MAXN 10010
using namespace std;
typedef long long ll;
ll n, m;
ll ans[MAXN];
bool dfs(int now, int limit){
    if(now > limit) return ans[now - 1] == n;
    if(ans[now - 1] * (1ll << (limit - now + 1)) < n) return false;
    for(int i = 1; i < now; i++){
        for(int j = i; j < now; j++){
            ll tmp = ans[i] + ans[j];
            if(tmp > n) break;
            if(tmp <= ans[now - 1]) continue;
            ans[now] = tmp;
            if(dfs(now + 1, limit)) return true;
        }
    }
    return false;
}
int main(){
    ans[1] = 1;
    while(~scanf("%lld",&n) && n){
        m = 1;
        while(!dfs(2, m)) m++;
        for(int i = 1; i <= m; i++){
            printf("%lld ",ans[i]);
        }
        printf("\n");
    }
    return 0;
}
2022/8/3 14:55
加载中...