洛谷 P1432 倒水問題

2022-03-16 15:42:55 字數 823 閱讀 4171

\(bfs\)

第一遍提交\(50\),第二遍就\(100\)了,qwq

#include#include#include#include#includeusing namespace std;

int t,ca,cb,n,step,sum;

int a_now[100001],b_now[100001],flag[100001];//a_now、b_now分別記錄a、b壺中的水,flag判斷當前這一步是從**擴充套件來的

int ans[100001],qwq[100001];//ans儲存進行了哪一步操作,qwq是最後的答案

bool vis[1001][1001];//判斷是否到達過當前情況

inline int read()

while(c>='0'&&c<='9')

return f?-x:x;

}//讀優

inline void write(int x)

}//輸出

void js(int x)

return;

}//計算用了幾步以及分別是那幾步

void bfs(int a,int b)

}}//5操作:pour ba 意為將b中水倒到a中(直到a滿或者b中水沒有剩餘)

if(i==6)

}}//6操作:pour a b}}

}int main()

puts("");//換行

step=sum=0;

memset(vis,0,sizeof(vis));//初始化

}return 0;

}

P1432 倒水問題 普及 提高(好好理解!)

題意 就是有倆被子容量a b,讓你想辦法讓b裡面裝n些水。然後有六種操作 輸出次數和過程。思路 剛開始我以為就觀察a n的關係來寫就行了,唉寫了半天40分 錯誤 35 4n a把b倒滿 然後不斷地進行b倒給a,滿了把a倒空,然後再來重複,知道a b其中乙個等於n 用了六步 1.把b倒滿。a 0,b ...

洛谷P1582 倒水

一天,cc買了n個容量可以認為是無限大的瓶子,開始時每個瓶子裡有1公升水。接著 cc發現瓶子實在太多了,於是他決定保留不超過k個瓶子。每次他選擇兩個當前含水量相同的瓶子,把乙個瓶子的水全部倒進另乙個裡,然後把空瓶丟棄。不能丟棄有水的瓶子 顯然在某些情況下cc無法達到目標,比如n 3,k 1。此時cc...

洛谷P1582 倒水

一天,cc買了n個容量可以認為是無限大的瓶子,開始時每個瓶子裡有1公升水。接著 cc發現瓶子實在太多了,於是他決定保留不超過k個瓶子。每次他選擇兩個當前含水量相同的瓶子,把乙個瓶子的水全部倒進另乙個裡,然後把空瓶丟棄。不能丟棄有水的瓶子 顯然在某些情況下cc無法達到目標,比如n 3,k 1。此時cc...