求助,答案会少几个项
查看原帖
求助,答案会少几个项
551088
FincheuwYggdrasil楼主2023/7/14 20:50
/*
ID: feuwwuw2
TASK: milk3
LANG: C++                 
*/
#include<bits/stdc++.h>
using namespace std;
int m[3], n[3];
bool vis[40], stp[30][30][30];
void dfs() {
	if(stp[m[0]][m[1]][m[2]]) {
		return ;
	}stp[m[0]][m[1]][m[2]] = 1;
	if(!m[0] && !vis[m[2]]) {
		cout << 1;
		vis[m[2]] = 1;
	}for(int i = 0; i < 3; i++) {
		for(int j = 0; j < 3; j++) {
			if(i == j || m[j] == n[j] || m[i] == 0) {
				continue;
			}
			int mimi = min(n[j] - m[j], m[i]);
			m[i] -= mimi, m[j] += mimi;
			dfs();
		}
	}
}
int main()
{
    ofstream fout ("milk3.out");
 	ifstream fin ("milk3.in");
	fin >> n[0] >> n[1] >> n[2];
	m[0] = 0, m[1] = 0, m[2] = n[2];
	//stp[m[0]][m[1]][m[2]] = 1;
	dfs();
	for(int i = 0; i <= 21; i++) {
		if(vis[i]) {
			fout << i << " "; 
		}
	}fout << endl;
 	return 0;
}

2023/7/14 20:50
加载中...