非常可樂 BFS 模擬

2022-04-17 13:40:58 字數 1393 閱讀 1413

題目大意:

給你兩個杯子還有一瓶可樂,問你可不可以通過杯子以及可樂之間互相倒來倒去 使最後兩個人喝到相同的可樂,注意杯子沒有刻度

思路:這道題很像曾經做過的小學題目,我們不妨把所有情況都列舉出來   

a->b  a->c 

b->a  b->c

c->a  c->b

總共就是六種情況,然後針對不同的情況不同的討論。具體的細節實現還是看**吧

1 #include 2 #include 

3 #include 4 #include 5 #include

6 #include 7 #include 8

9using

namespace

std;

1011

int vist[105][105][105

],a,b,c;

12struct

node

13s[105

];17

int sum=0;18

void

bfs()

1938

node p2;

39if(p1.a!=0)40

48else

4955

if(!vist[p2.a][p2.b][p2.c])

5660}61

62if(p1.a!=0)63

71else

7278

if(!vist[p2.a][p2.b][p2.c])

7983}84

85if(p1.b!=0)86

94else

95101

if(!vist[p2.a][p2.b][p2.c])

102106

}107

108if(p1.b!=0

)109

117else

118124

if(!vist[p2.a][p2.b][p2.c])

125129

}130

131if(p1.c!=0

)132

140else

141147

if(!vist[p2.a][p2.b][p2.c])

148152

}153

154if(p1.c!=0

)155

163else

164170

if(!vist[p2.a][p2.b][p2.c])

171175

}176

}177 printf("

no\n");

178}

179int

main()

180188

bfs();

189}

190return0;

191 }

非常可樂 bfs

大家一定覺的運動以後喝可樂是一件很愜意的事情,但是seeyou卻不這麼認為。因為每次當seeyou買了可樂以後,阿牛就要求和seeyou一起分享這一瓶可樂,而且一定要喝的和seeyou一樣多。但seeyou的手中只有兩個杯子,它們的容量分別是n 毫公升和m 毫公升 可樂的體積為s s 101 毫公升...

非常可樂 BFS

大家一定覺的運動以後喝可樂是一件很愜意的事情,但是seeyou卻不這麼認為。因為每次當seeyou買了可樂以後,阿牛就要求和seeyou一起分享這一瓶可樂,而且一定要喝的和seeyou一樣多。但seeyou的手中只有兩個杯子,它們的容量分別是n 毫公升和m 毫公升 可樂的體積為s s 101 毫公升...

非常可樂(bfs

problem 非常可樂 description 大家一定覺的運動以後喝可樂是一件很愜意的事情,但是seeyou卻不這麼認為。因為每次當seeyou買了可樂以後,阿牛就要求和seeyou一起分享這一瓶可樂,而且一定要喝的和seeyou一樣多。但seeyou的手中只有兩個杯子,它們的容量分別是n 毫公...