题目链接

1978: 调酒壶里的酸奶

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 158  Solved: 40
[Submit][Status][Web Board]

Description

最近小w学了一手调酒的技巧,这么帅的操作,说不定能靠这个俘获女神的芳心,为了在女神面前露一手,他想在学校里建一个"pub",但是显然学校不可能让他真的建一个"pub",那么他退而求次,想建一个"Yogurt shop",不能用酒,那用酸奶也行啊!
今天女神终于来光顾小w的酸奶店了!兴奋的小w拿出自己准备已久每天都仔细擦干净的装备——调酒壶、果汁机、隔冰器和计量杯、砧板、小刀....准备露一手给女神看看
但是女神却没有那么多耐心,女神只是觉得,自己买一瓶大酸奶喝不完,小瓶酸奶不够喝,所以在小w的酸奶店,说不定她可以想买多少就买多少。
于是女神告诉了小w她想要多少体积的酸奶,而小w却依旧想秀一下自己的操作,于是他决定用仅有的两个调酒壶为女神倒出女神想要的酸奶....
小w的两个调酒壶体积是不同的(一开始都是空的),小w每次可以选择一个调酒壶倒入另一个调酒壶(若A倒入B,A倒完或B倒满则停止),或者选择一个调酒壶倒光,或者选择一个调酒壶去接满酸奶.....
满心失望的小w想找一朵花,一瓣一瓣的撕下来,问问花朵女神到底喜不喜欢他...虽然这个答案是显而易见的,但是他还是想找一朵花...然而找花未果,反正花瓣不是偶数就是奇数,那他索性就用自己的操作次数作为花瓣个数吧!(找不到花我还不能脑补一朵吗...)
但是小w已经没有心情去想答案了...那么你能告诉他,需要多少步操作才能倒出女神想要的酸奶吗?

Input

输入包含多组数据,每行三个正整数a,b,c分别表示两个调酒壶的容量以及女神想要的酸奶体积,a,b的范围都在[0,100],c<=max(a,b)

Output

一行包含一个整数表示完成要求的最少操作次数,若达不到则输出"impossible"(没有双引号)

Sample Input

10 15 11

6 5 4

Sample Output

impossible 4

HINT

我不知道为什么酸奶可以倒进调酒壶,我也不知道为什么女神不喜欢小w,我只知道凭小w的想象力,游泳池都行更别说一朵花了!

Source

jnxxhzz

解题思路:

就是一道模拟题,看完题解觉得好简单……但自己写深搜就是写不出来

1.先判断c能否被a,b的最大公因数整除,若不可以则输出impossible,可以则进行以下步骤。

2.A和B两个杯子的倒水模拟过程只有6个。

(1)B倒入A,分为A装满和B倒完讨论

(2)A倒入B,分为B装满和A倒完讨论

(3)A倒满

(4)A倒掉

(5)B倒满

(6)B倒掉

只要将这六个过程模拟清楚就好了。

代码:

#include<bits/stdc++.h>
using namespace std;
int a,b,c,ans;
int v[101][101];
int gcd(int a,int b)
{int x=a;while(x!=0){x=a%b;a=b;b=x;}return a;
}
void dfs(int A,int B,int k)
{//cout<<"A="<<A<<"  B="<<B<<"   k="<<k<<endl;if(A==c || B==c){if(ans>k)ans=k;return ;}v[A][B]=1;if(A+B>=a){//B倒入A if((A+B-a<b) && !v[a][A+B-a]){//B倒入A,A被装满 dfs(a,A+B-a,k+1);v[a][A+B-a]=0;}}else{if(!v[A+B][0]){//B倒入A,B被倒完 dfs(A+B,0,k+1);v[A+B][0]=0;}}if(A+B>=b){//A倒入B if((A+B-b<a) && !v[A+B-b][b]){//A倒入B,B被装满 dfs(A+B-b,b,k+1);v[A+B-b][b]=0;}} else{if(!v[0][A+B]){//A倒入B,A被倒完 dfs(0,A+B,k+1);v[0][A+B]=0;}} if(A<a && !v[a][B]){//A倒满 dfs(a,B,k+1);v[a][B]=0;}if(A>0 && !v[0][B]){//A倒掉 dfs(0,B,k+1);v[0][B]=0;} if(B<b && !v[A][b]){//B倒满 dfs(A,b,k+1);v[A][b]=0;}if(B>0 && !v[A][0]){//B倒掉 dfs(A,0,k+1);v[A][0]=0;}
}
int main()
{while(cin>>a>>b>>c){if(b>a)swap(a,b);int x;x=gcd(a,b);if(c%x!=0){cout<<"impossible"<<endl;continue;} memset(v,0,sizeof(v));ans=101*101;dfs(0,0,0);cout<<ans<<endl;}return 0;}

【ZCMU1978】调酒壶里的酸奶(dfs)相关推荐

  1. 调酒壶里的酸奶 DFS

    题目描述 最近小w学了一手调酒的技巧,这么帅的操作,说不定能靠这个俘获女神的芳心,为了在女神面前露一手,他想在学校里建一个"pub",但是显然学校不可能让他真的建一个"p ...

  2. zcmu 1978: 调酒壶里的酸奶(数论+dfs)

    [题目] 1978: 调酒壶里的酸奶 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 173  Solved: 48 [Submit][Status][ ...

  3. 调酒壶里的酸奶【深度优先搜索】

    调酒壶里的酸奶 题目链接(点击) 题目描述 最近小w学了一手调酒的技巧,这么帅的操作,说不定能靠这个俘获女神的芳心,为了在女神面前露一手,他想在学校里建一个"pub",但是显然学校 ...

  4. HNUCM 1322 调酒壶里的酸奶 BFS

    1322: 调酒壶里的酸奶 时间限制: 1  内存限制: 128 MB 题目描述 最近小w学了一手调酒的技巧,这么帅的操作,说不定能靠这个俘获女神的芳心,为了在女神面前露一手,他想在学校里建一个&qu ...

  5. 调酒壶里的酸奶(DFS)

    题目描述 最近小w学了一手调酒的技巧,这么帅的操作,说不定能靠这个俘获女神的芳心,为了在女神面前露一手,他想在学校里建一个"pub",但是显然学校不可能让他真的建一个"p ...

  6. 【bfs】调酒壶里的酸奶

    题目描述 最近小w学了一手调酒的技巧,这么帅的操作,说不定能靠这个俘获女神的芳心,为了在女神面前露一手,他想在学校里建一个"pub",但是显然学校不可能让他真的建一个"p ...

  7. 调酒壶里的酸奶(bfs)

    题目描述 最近小w学了一手调酒的技巧,这么帅的操作,说不定能靠这个俘获女神的芳心,为了在女神面前露一手,他想在学校里建一个"pub",但是显然学校不可能让他真的建一个"p ...

  8. 问题 C: 调酒壶里的酸奶

    题目描述 最近小w学了一手调酒的技巧,这么帅的操作,说不定能靠这个俘获女神的芳心,为了在女神面前露一手,他想在学校里建一个"pub",但是显然学校不可能让他真的建一个"p ...

  9. 问题 C: 调酒壶里的酸奶 BFS

    题目描述 最近小w学了一手调酒的技巧,这么帅的操作,说不定能靠这个俘获女神的芳心,为了在女神面前露一手,他想在学校里建一个"pub",但是显然学校不可能让他真的建一个"p ...

最新文章

  1. linux连接到程序,Linux下C程序的链接过程
  2. 昕灵感应流行坊(Shop.25941.Cn)^_^全新开张
  3. java 设置pdf 编码格式_Java如何设置PDF文档背景色详解
  4. 《MySQL——InnoDB与Memory以及临时表》
  5. 程序员,35岁就可能被替换的职业,遇到好的领导多么重要
  6. python if条件判断语句
  7. ABBYY Lingvo European for Mac(万能词典)
  8. CURL基于某个URL请求需要身份验证
  9. 易用性软件测试用例,易用性测试用例集
  10. 解除百度文库复制限制
  11. visio连接线和框图不好控制总跑跳问题
  12. 通过路由远程计算机重启,如何通过三种方式重启路由器
  13. 世界药林:首款PRCP抑制剂奥拉帕利已经批准4种适应症
  14. The computer is being attacked
  15. npm ERR! nested aliases not supported 报错原因
  16. 【避坑 超详细】Ubuntu使用python的selenium以及chrome模拟真实浏览器访问网页
  17. 基于Spring Boot的个人博客系统的设计与实现毕业设计源码271611
  18. 汉语字典APP开发总结
  19. 京东数科区块链ABS解决方案受国际权威研究机构认可
  20. Wireshark lua 插件简介

热门文章

  1. 遭遇资本方大量吸筹!原来是FAF表现太过瞩目?
  2. 未能加载文件或程序集.HRESULT:0x80131515解决方法
  3. C++输入以空格分割的字符串
  4. 对话 Contributor| 中国团队贡献的开源项目, 当然要支持
  5. idea升级后maven的pom报错‘parent.relativePath‘ of POM xxx points at xxx instead of xxx
  6. vim多行注释, 多行删除, 删除所有内容, 删除包含特定字符串的行
  7. 中国销售房产增值税怎么计算
  8. MySQL查看版本号
  9. 哈啰顺风车将于2月22日全国上线
  10. win10网络查看不到共享计算机,win10系统下网上邻居看不到其他共享电脑的4个解决方法...