非常可樂 HDU 1495

2021-08-21 03:28:18 字數 778 閱讀 9021

這道題題意不是很清楚啊,沒說平分的含義有木有啊!

首先,平分是指可樂瓶中的可樂含量是原來的一半,可以首先把奇數的樣例pass掉了。然後用bfs模擬即可。

// hdu - 1495

#include

#include

#include

using

namespace

std;

struct zt ;

int dir[2] = , , , , , };

bool vis[110][110];

int main()

int aim = s/2;

b.step = 0;

b.v[0] = s;

b.v[1] = n;

b.v[2] = m;

b.n[0] = s;

b.n[1] = b.n[2] = 0;

queue

qu;qu.push(b);

bool flag = true;

memset(vis, false, sizeof(vis));

vis[b.n[1]][b.n[2]] = true;

while(!qu.empty())

for(int i = 0; i < 6; i++)

else

if (!vis[t.n[1]][t.n[2]]) }}

if (flag) printf("no\n");

}return

0;}

hdu 1495 非常可樂

題意 給你三個容器讓你平分可樂,求最少的步數。思路 一看到求最少步數,就想到了廣搜,但是沒有思路,但看別人分情況,瞬間就明白啦。可以s n,s m,n s,n m,m s,m n這六種情況討論就行,每種又有倒完和倒不完兩種情況,直到出現兩個容器都有s 2,這就是最少步數。但s是奇數時是不能平分的,三...

hdu 1495 非常可樂

hdu 1495 非常可樂 題目大意 給你三個容器,他們的容量分別是 s,n,m 且s n m,給你s,n,m。s代表裝在容器裡可樂,n和m代表的是兩個杯子的容量,求他們能否平分這杯可樂。如果能就輸出倒的最小次數,如果不能就輸出 no。題目分析 也就是要達到能 s 2,0,s 2或 0 s 2,s ...

hdu 1495 非常可樂

兩個杯子按大小排序,為s m n,1.只要n滿了,就把n裡的東西放到s中 2.只要m非空,就把m中的放到n中 3.如果m為空,把s中的放到m中 超時 include int n,m,s int main if ss aa bb 0 得到均分 if bb b 若小杯子裡裝滿可樂,將小杯子裡的可樂倒入可...