为何会wa
查看原帖
为何会wa
257563
Harry_8810楼主2020/12/24 20:16

在loj上提交显示AC
在luogu上提交显示WA 两者代码一模一样,怎么肥四?

#include<bits/stdc++.h>
#define re register int
using namespace std;
int n,a[1000],t;
bool dfs(int m){
	if(m-1==t)return a[m-1]==n;
	if(a[m-1]*1<<(t-m+1)<n)return false;
	for(re i=1;i<=m-1;i++){
		for(re j=i;j<=m-1;j++){
			a[m]=a[i]+a[j];
			if(a[m]>n)break;
			if(a[m]<=a[i-1])continue;
			if(dfs(m+1))return true;
		}
	}
	return false;
}
int main(){
	while(true){
		scanf("%d",&n);
		if(n==0)return 0;
		for(t=1;t<=n;t++){
			a[1]=1;
			if(dfs(2)){
				int i=0;
				while(a[++i]){
					printf("%d ",a[i]);
				}
				printf("\n");
				break;
			}
			memset(a,0,sizeof(a));
		}
	}
	return 0;
}
2020/12/24 20:16
加载中...