社区讨论
20求调
P1215[USACO1.4] 母亲的牛奶 Mother's Milk参与者 2已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @m6vr0y6f
- 此快照首次捕获于
- 2025/02/08 13:22 去年
- 此快照最后确认于
- 2025/11/04 09:45 4 个月前
枚举6种情况但就是错
CPP#include<bits/stdc++.h>
using namespace std;
bool v[21][21][21],f[21];
int a,b,c;
void bfs(int A,int B,int C)
{
if(v[A][B][C]==1) return;//标记
else v[A][B][C]=1;
if(A==0&&!f[C]) f[C]=1;
if(a-A>=C) bfs(A+C,B,0);//C倒给A
else if(a-A<C) bfs(a,B,C+A-a);
if(b-B>=C) bfs(A,B+C,0);//C倒给B
else if(b-B<C) bfs(A,b,C+B-b);
if(a-A>=B) bfs(A+B,0,C);//B倒给A
else if(a-A<B) bfs(a,B+A-a,C);
if(c-C>=B) bfs(A,0,B+C);//B倒给C
else if(c-C<B) bfs(A,B+C-c,c);
if(b-B>=A) bfs(0,A+B,C);//A倒给B
else if(b-B<A) bfs(A+B-b,b,C);
if(c-C>=A) bfs(0,B,C+A);//A倒给C
else if(c-C<A) bfs(A+C-c,B,c);
}
int main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
bfs(0,0,c);
for(int i=c-b;i<=c;i++)//从最小开始输出
{
if(f[i])
printf("%d ",i);
}
return 0;
}
QAQ
回复
共 3 条回复,欢迎继续交流。
正在加载回复...