【bfs】調酒壺里的酸奶

題目描述

最近小w學了一手調酒的技巧,這么帥的操作,說不定能靠這個俘獲女神的芳心,為了在女神面前露一手,他想在學校里建一個"pub",但是顯然學校不可能讓他真的建一個"pub",那么他退而求次,想建一個"Yogurt shop",不能用酒,那用酸奶也行啊!
今天女神終于來光顧小w的酸奶店了!興奮的小w拿出自己準備已久每天都仔細擦干凈的裝備——調酒壺、果汁機、隔冰器和計量杯、砧板、小刀....準備露一手給女神看看
但是女神卻沒有那么多耐心,女神只是覺得,自己買一瓶大酸奶喝不完,小瓶酸奶不夠喝,所以在小w的酸奶店,說不定她可以想買多少就買多少。
于是女神告訴了小w她想要多少體積的酸奶,而小w卻依舊想秀一下自己的操作,于是他決定用僅有的兩個調酒壺為女神倒出女神想要的酸奶....
小w的兩個調酒壺體積是不同的(一開始都是空的),小w每次可以選擇一個調酒壺倒入另一個調酒壺(若A倒入B,A倒完或B倒滿則停止),或者選擇一個調酒壺倒光,或者選擇一個調酒壺去接滿酸奶.....
滿心失望的小w想找一朵花,一瓣一瓣的撕下來,問問花朵女神到底喜不喜歡他...雖然這個答案是顯而易見的,但是他還是想找一朵花...然而找花未果,反正花瓣不是偶數就是奇數,那他索性就用自己的操作次數作為花瓣個數吧!(找不到花我還不能腦補一朵嗎...)
但是小w已經沒有心情去想答案了...那么你能告訴他,需要多少步操作才能倒出女神想要的酸奶嗎?

?

輸入

輸入包含多組數據,每行三個正整數a,b,c分別表示兩個調酒壺的容量以及女神想要的酸奶體積,a,b的范圍都在[0,100],c<=max(a,b)? ?

?

輸出

一行包含一個整數表示完成要求的最少操作次數,若達不到則輸出"impossible"(沒有雙引號)

?

樣例輸入

復制樣例數據

10 15 11
6 5 4

樣例輸出

impossible
4

?

提示

?

?我不知道為什么酸奶可以倒進調酒壺,我也不知道為什么女神不喜歡小w,我只知道憑小w的想象力,游泳池都行更別說一朵花了!

?

解題思路:

對于兩個調酒壺,可以對其進行六種操作,將a中的酒倒入b中,將b中的酒倒入a中,將a灌滿,將b灌滿,將a倒空,將b倒空,用一個數組標記一下兩酒壺出現的情況,bfs即可。

推薦兩道與此題差不多的題

https://blog.csdn.net/YT201758501112/article/details/83278909
https://blog.csdn.net/YT201758501112/article/details/83278654

代碼:

?

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstdlib>
#include <cstring>
#include <map>
#include <stack>
#include <queue>
#include <vector>
#include <bitset>
#include <set>
#include <utility>
#include <sstream>
#include <iomanip>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
#define inf 0x3f3f3f3f
#define rep(i,l,r) for(int i=l;i<=r;i++)
#define lep(i,l,r) for(int i=l;i>=r;i--)
#define ms(arr) memset(arr,0,sizeof(arr))
//priority_queue<int,vector<int> ,greater<int> >q;
const int maxn = (int)1e5 + 5;
const ll mod = 1e9+7;
int a,b,c;
bool vis[120][120];
struct node
{int x;int y;int step;
};
void bfs()
{queue<node> q;while(!q.empty()) q.pop();node fis;fis.x=0;fis.y=0;fis.step=0;vis[0][0]=true;q.push(fis);while(!q.empty()) {node fro=q.front(),nxt;q.pop();if(fro.x==c||fro.y==c) {cout<<fro.step<<endl;return;}rep(i,1,6) {if(i==1) {int nape=fro.x+fro.y;if(fro.x>0) {if(nape>b) {nxt.x=nape-b;nxt.y=b;}else {nxt.x=0;nxt.y=nape;}nxt.step=fro.step+1;if(vis[nxt.x][nxt.y]==false) {vis[nxt.x][nxt.y]=true;q.push(nxt);}}}if(i==2) {int nape=fro.x+fro.y;if(fro.y>0) {if(nape>a) {nxt.y=nape-a;nxt.x=a;}else {nxt.y=0;nxt.x=nape;}nxt.step=fro.step+1;if(vis[nxt.x][nxt.y]==false) {vis[nxt.x][nxt.y]=true;q.push(nxt);}}}if(i==3) {if(fro.x>0) {nxt.x=0;nxt.y=fro.y;nxt.step=fro.step+1;if(vis[nxt.x][nxt.y]==false) {vis[nxt.x][nxt.y]=true;q.push(nxt);}}}if(i==4) {if(fro.y>0) {nxt.y=0;nxt.x=fro.x;nxt.step=fro.step+1;if(vis[nxt.x][nxt.y]==false) {vis[nxt.x][nxt.y]=true;q.push(nxt);}}}if(i==5) {if(fro.x<a) {nxt.x=a;nxt.y=fro.y;nxt.step=fro.step+1;if(vis[nxt.x][nxt.y]==false) {vis[nxt.x][nxt.y]=true;q.push(nxt);}}}if(i==6) {if(fro.y<b) {nxt.y=b;nxt.x=fro.x;nxt.step=fro.step+1;if(vis[nxt.x][nxt.y]==false) {vis[nxt.x][nxt.y]=true;q.push(nxt);}}}}}cout<<"impossible"<<endl;
}
int main() 
{#ifndef ONLINE_JUDGEfreopen("in.txt", "r", stdin);#endif//freopen("out.txt", "w", stdout);ios::sync_with_stdio(0),cin.tie(0);while(cin>>a>>b>>c) {memset(vis,false,sizeof vis);bfs();}return 0;
}

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/536307.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/536307.shtml
英文地址,請注明出處:http://en.pswp.cn/news/536307.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【dfs】Election of Evil

題目描述 Dylan is a corrupt politician trying to steal an election. He has already used a mind-control technique to enslave some set U of government representatives. However, the representatives who will be choosing the winner of the election is a di?ere…

【思維】Iranian ChamPions Cup

題目描述 The Iranian ChamPions Cup (ICPC), the most prestigious football league in Iran, is reaching its end, and people are eagerly waiting for the finals, which happened to be between the two most popular Iranian teams, Persepolis and Esteghlal. The ICP…

【數學】Chaarshanbegaan at Cafebazaar

題目描述 Chaarshanbegaan is a gathering event at Cafebazaar similar to TGIF events at Google. Some entertainment programs like pantomime, foosball, Xbox/PS4, and several board games are part of the event. You are going to set up a dart game in Chaarshanbe…

【思維】Congestion Charging Zone

題目描述 Tehran municipality has set up a new charging method for the Congestion Charging Zone (CCZ) which controls the passage of vehicles in Tehran’s high-congestion areas in the congestion period (CP) from 6:30 to 19:00. There are plate detection came…

【二分】LED

題目描述 A Light-Emitting Diode (LED) is a semiconductor light source, which emits light when an electric current of voltage higher than a threshhold is applied to its leads. ACM R&D recently reported that they have succesfully developed a new LED, na…

【差分數組】Master of GCD

題目描述 Hakase has n numbers in a line. At fi rst, they are all equal to 1. Besides, Hakase is interested in primes. She will choose a continuous subsequence [l, r] and a prime parameter x each time and for every l≤i≤r, she will change ai into ai*x. To…

【模擬】Ground Defense

題目描述 You are a denizen of Linetopia, whose n major cities happen to be equally spaced along an east-west line. In fact, they are often numbered in order from 1 to n, where 1 is the westmost city and n is the eastmost city. Linetopia was a lovely plac…

【模擬】Bulbs

題目描述 Greg has an m n grid of Sweet Lightbulbs of Pure Coolness he would like to turn on. Initially, some of the bulbs are on and some are off. Greg can toggle some bulbs by shooting his laser at them. When he shoots his laser at a bulb, it toggles th…

【模擬】Ingenious Lottery Tickets

題目描述 Your friend Superstitious Stanley is always getting himself into trouble. This time, in his Super Lotto Pick and Choose plan, he wants to get rich quick by choosing the right numbers to win the lottery. In this lottery, entries consist of six dis…

【數學】Hunter’s Apprentice

題目描述 When you were five years old, you watched in horror as a spiked devil murdered your parents. You would have died too, except you were saved by Rose, a passing demon hunter. She ended up adopting you and training you as her apprentice. Rose’s cur…

【模擬】Thanks, TuSimple!

題目鏈接&#xff1a;http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId5979 Thanks, TuSimple! Time Limit: 1 Second Memory Limit: 65536 KB In the very first sentence of the very first problem, we would like to give our sincere thanks to TuSimple,…

【二維差分】Monitor

Monitor 題目&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid6514 Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 163840/163840 K (Java/Others) Total Submission(s): 600 Accepted Submission(s): 190 Problem Description Xiaoteng has a la…

【數學】MORE XOR

Given a sequence of nnn numbers a1,a2,?&ThinSpace;,ana_1, a_2,\cdots, a_na1?,a2?,?,an? and three functions. Define a function f(l,r)f(l,r)f(l,r) which returns ⊕a[x](l≤x≤r)\oplus a[x] (l \le x \le r)⊕a[x](l≤x≤r). The \oplus⊕ represents excl…

【數學】Element Swapping

Element Swapping Time Limit: 1 Second Memory Limit: 65536 KB DreamGrid has an integer sequence a1,a2,a3,…,ana_1,a_2,a_3,\dots,a_na1?,a2?,a3?,…,an? and he likes it very much. Unfortunately, his naughty roommate BaoBao swapped two elements aia_iai? an…

【二分+二維前綴和】Largest Allowed Area

Largest Allowed Area 時間限制: 1 Sec 內存限制: 128 MB 提交: 146 解決: 54 [提交] [狀態] [命題人:admin] 題目描述 A company is looking for land to build its headquarters. It has a lot of money and can buy as many land patches as it needs. Its goal, howev…

【數學】Floating-Point Hazard

Floating-Point Hazard 時間限制: 1 Sec 內存限制: 128 MB 提交: 106 解決: 42 [提交] [狀態] [命題人:admin] 題目描述 Given the value of low, high you will have to find the value of the following expression: If you try to find the value of the above express…

【manacher】Strings in the Pocket

Strings in the Pocket Time Limit: 1 Second Memory Limit: 65536 KB BaoBao has just found two strings ss1s2…snss_1s_2\dots s_nss1?s2?…sn? and tt1t2…tntt_1t_2\dots t_ntt1?t2?…tn? in his left pocket, where sis_isi? indicates the iii-th character in…

【并查集+dp】Team

Team 時間限制: 1 Sec 內存限制: 128 MB 提交: 124 解決: 10 [提交] [狀態] [命題人:admin] 題目描述 ACM-ICPC is a interesting game. A team takes part in this game must consist of exactly (no more and no less) three players. Every year, many new members wil…

【線段樹】Segment Tree

Segment Tree 時間限制: 1 Sec 內存限制: 512 MB 提交: 107 解決: 23 [提交] [狀態] [命題人:admin] 題目描述 Mcginn opens the code which he wrote 25 years ago. Clever Mcginn wants to know how many positive interger n satis?ed that the maximum c can reach w…

UVA1025——A Spy in the Metro【dp】

題目鏈接&#xff1a;https://cn.vjudge.net/problem/UVA-1025 題目大意&#xff1a;Mario從第1站出發&#xff0c;目的是在時刻T會見車站 nnn 的一個間諜。由于在車站等待容易被抓&#xff0c;所以應盡量躲在開動的火車上&#xff0c;即在車站等待的時間最短&#xff0c;且Ma…