problem description
給你一瓶s體積的可樂,n和m容量的杯子,他們可以互相倒,問你能不能平分這瓶可樂,能的話,輸出需要倒多少次,不能的話,輸出no.**: 就是情況多了點而已
#include
using
namespace
std;
struct node
;queue
q;int s, n, m;
int vis[105][105];
void bfs()
);//最開始的情況,入佇列
vis[0][0] = 1;//只需要標記後兩個的體積即可
while(!q.empty())
for(i = 0; i < 6; i++)//分為六種情況);}
}else
//不能倒滿b);}
}}
if(i == 1 && c != m)//a倒入c);}
}else
//不能倒滿c);}
}}
if(i == 2 && a != s)//b倒入a);}
}}
if(i == 3 && c != m)//b倒入c);}
}else
//不能倒滿);}
}}
if(i == 4 && a != s)//c倒入a);}
}}
if(i == 5 && b != n)//c倒入b);}
}else
//不能倒滿);}
}}}}
printf("no\n");//不能平分
}int main()
return
0;}
1495 非常可樂
看題目時萬萬沒想到是bfs 不過這種尋找最少次數的問題確實除了bfs也想不到其他辦法了orz problem description 大家一定覺的運動以後喝可樂是一件很愜意的事情,但是seeyou卻不這麼認為。因為每次當seeyou買了可樂以後,阿牛就要求和seeyou一起分享這一瓶可樂,而且一定要...
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 ...