【題目描述】
有三個容器,容量分別為 a,b,c(a> b > c ),一開始a裝滿油,現在問是否只靠abc三個容器量出k公升油。如果能就輸出「yes」,並且說明最少倒幾次,否則輸出「no」。例如:10公升油在10公升的容器中,另有兩個7公升和3公升的空容器,要求用這三個容器倒油,使得最後在abc三個容器中有乙個剛好存有5公升油,問最少的倒油次數是多少?(每次倒油,a容器倒到b容器,或者a內的油倒完,或者b容器倒滿。
10 7 3
(10 0 0)
(3 7 0):第一次
(3 4 3):第二次
(6 4 0):第三次
(6 1 3):第四次
(9 1 0):第五次
(9 0 1):第六次
(2 7 1):第七次
(2 5 3):第八次,出現5了。
input
【輸入格式】
有多組測試資料。
輸入a,b,c, k四個正整數( 100 ≥ a > b > c≥1 , 1≤k< 100 )
output
【輸出格式】
如果能得到k就輸出兩行。
第一行「yes」,第二行為最少的次數
否則輸出「no」
sample input一直wa。。欸。。之後再看看吧。先放著。10 7 3 5
sample output
yes8
#include
#include
using
namespace std;
struct node
start;
int a[3]
;queue q;
bool has =
false
;int m[
101]
[101][
101]=;
//用來判斷某個狀態是否已經存在了
int k;
void
bfs(
)for
(int i =
0; i <
3; i++
)else
//i會變成空
if(m[temp.num[0]
][temp.num[1]
][temp.num[2]
]==0)
}}}}
}int
main()
cin >> k;
start.num[0]
= a[0]
; start.num[1]
= start.num[2]
=0; start.step =0;
m[a[0]
][0]
[0]=
1;q.
push
(start)
;bfs()
;if(!has)
return0;
}
問題 E 寬搜入門 巧妙取量
題目描述 有三個容器,容量分別為 a,b,c a b c 一開始a裝滿油,現在問是否只靠abc三個容器量出k公升油。如果能就輸出 yes 並且說明最少倒幾次,否則輸出 no 例如 10公升油在10公升的容器中,另有兩個7公升和3公升的空容器,要求用這三個容器倒油,使得最後在abc三個容器中有乙個剛好...
bfs 很巧妙的乙個記錄路徑方式!!
總時間限制 1000ms 記憶體限制 65536kb 描述 佐助被大蛇丸誘騙走了,鳴人在多少時間內能追上他呢?已知一張地圖 以二維矩陣的形式表示 以及佐助和鳴人的位置。地圖上的每個位置都可以走到,只不過有些位置上有大蛇丸的手下,需要先打敗大蛇丸的手下才能到這些位置。鳴人有一定數量的查克拉,每乙個單位...
量取牛奶codevs2094
題目描述 description 農夫約翰要量取 q 1 q 20,000 夸脫 夸脫,quarts,容積單位 譯者注 他的最好的牛奶,並把它裝入乙個大瓶子中賣出。消費者要多少,他就給多少,從不有任何誤差。農夫約翰總是很節約。他現在在奶牛五金商店購買一些桶,用來從他的巨大的牛奶池中量出 q 夸脫的牛...