dfs求助!样例都过不了!QAQ
查看原帖
dfs求助!样例都过不了!QAQ
415731
zheng61楼主2022/5/26 19:29

代码:

#include<bits/stdc++.h>
using namespace std;

int num[1010]={6, 2, 5, 5, 4, 5, 6, 3, 7, 6},bai[4],n,sum=0;

void dfs(int i);

void dfs(int i){
	for(int j=0;j<=999;j++){
		if(n-num[i]>=0){
			bai[i]=j;
			n-=num[j];
			if(i==3){
				if(bai[1]+bai[2]==bai[3]&&n==0){
					sum++;
					for(int k=1;k<=3;k++)cout<<bai[k]<<" ";
					cout<<endl;
				}
			}
			else dfs(i+1);
			n+=num[j];
		}
	}
}

int main(){
	cin>>n;
	n-=4;
	for(int i=10;i<=999;i++)
		num[i]=num[i/10]+num[i%10];
	dfs(1);
	cout<<sum<<endl;
	return 0;
}
2022/5/26 19:29
加载中...