dfs最后两个点RE
  • 板块P2089 烤鸡
  • 楼主Gunpowder_OI
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/7/9 10:26
  • 上次更新2023/10/27 21:23:55
查看原帖
dfs最后两个点RE
316855
Gunpowder_OI楼主2022/7/9 10:26

rt。 code:

#include <bits/stdc++.h>
using namespace std;
int a, p[15], sum = 0, ans[5005][5005];
void dfs (int x, int tot){
	if (x == 10){
		for (int i = 1; i <= 3; i++){
			if (tot + i == a){
				sum++;
				p[x] = i;
				for (int j = 1; j <= 10; j++){
					ans[sum][j] = p[j];
				}
				return;
			}
		}
		return;
	}
	for (int i = 1; i <= 3; i++){
		p[x] = i;
		dfs (x + 1, tot + i);
	}
}
int main (){
	cin >> a;
	if (a < 10 || a > 30){
		cout << 0;
		return 0;
	}
	dfs (1, 0);
	cout << sum << endl;;
	for (int i = 1; i <= sum; i++){
		for (int j = 1; j <= 10; j++){
			cout << ans[i][j] << " ";
		}
		cout << endl;
	}
    return 0;
}
2022/7/9 10:26
加载中...