http://acm.hdu.edu.cn/showproblem.php?pid=1495

搜索模拟出每此倒得情况就好,详情见代码\

(好困啊!!!!1)

 #include<cstdio>
#include<queue>
#include<cstring>
using namespace std;
#define M 111
#define min(a,b) a<b?a:b
struct point{
int v[];
int time;
};
int res[],vis[M][M];
int bfs()
{
memset(vis,,sizeof(vis));
queue<point>Q;
point now,next;
now.v[]=;now.v[]=;now.v[]=res[];、、初始情况
now.time=;
vis[now.v[]][]=;、、记录瓶子和大杯子的情况,避免重复
Q.push(now);
while (!Q.empty())
{
now=Q.front();
Q.pop();
if (now.v[]==now.v[]&&now.v[]*==res[])
return now.time;
for (int i=;i<=;i++)
{
for (int j=;j<=;j++)
{
if (i==j) continue;
int temp=min(now.v[i],res[j]-now.v[j]);、、选取能够倒的睡的体积
for (int k=;k<=;k++)
next.v[k]=now.v[k];
next.v[i]-=temp;
next.v[j]+=temp;
if (vis[next.v[]][next.v[]]) continue;
vis[next.v[]][next.v[]]=;
next.time=now.time+;
Q.push(next);
}
}
}
return -;
}
int main()
{
while (~scanf("%d %d %d",&res[],&res[],&res[]))
{
if (!res[]&&!res[]&&!res[]) break;
if (res[]%){ 、、如果总数不能被平分那么肯定是不行的
printf("NO\n");
continue;
}
if (res[]>res[]) swap(res[],res[]);、、因为一般情况下这两个都是一大一小的,一个大于一半,一个小于一半,最后如果分出来了肯定是一半在瓶子里一半在打的那个杯子里,所以需要先找出哪个杯子是大的哪个是小的
int x=bfs();
if (x==-) printf("NO\n");
else printf("%d\n",x);
}
return ;
}

hdu 1495 (搜索) 非常可乐的更多相关文章

  1. 【HDU - 1495】非常可乐

    -->非常可乐  Descriptions: 大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为.因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一 ...

  2. BFS(倒水问题) HDU 1495 非常可乐

    题目传送门 /* BFS:倒水问题,当C是奇数时无解.一共有六种情况,只要条件符合就入队,我在当该状态vised时写了continue 结果找了半天才发现bug,泪流满面....(网上找份好看的题解都 ...

  3. 【BFS】HDU 1495

    直达–> HDU 1495 非常可乐 相似题联动–>POJ 3414 Pots 题意:中文题,不解释. 思路:三个杯子倒来倒去,最后能让其中两个平分即可.可能性六种.判定的时候注意第三个杯 ...

  4. hdu 5887 搜索+剪枝

    Herbs Gathering Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  5. hdu 5636 搜索 BestCoder Round #74 (div.2)

    Shortest Path  Accepts: 40  Submissions: 610  Time Limit: 4000/2000 MS (Java/Others)  Memory Limit: ...

  6. Square HDU 1518 搜索

    Square HDU 1518 搜索 题意 原题链接 给你一定若干个木棒,让你使用它们组成一个四边形,要求这些木棒必须全部使用. 解题思路 木棒有多种组合方式,使用搜索来进行寻找,这里需要进行优化,不 ...

  7. HDU 1495 非常可乐 BFS 搜索

    http://acm.hdu.edu.cn/showproblem.php?pid=1495 题目就不说了, 说说思路! 倒可乐 无非有6种情况: 1. S 向 M 倒 2. S 向 N 倒 3. N ...

  8. HDU 1495 非常可乐 BFS搜索

    题意:有个为三个杯子(杯子没有刻度),体积为s,n,m,s=m+n, 刚开始只有体积为s的杯子装满可乐,可以互相倒,问你最少的次数使可乐均分,如果没有结果,输出-1; 分析:直接互相倒就完了,BFS模 ...

  9. kuangbin专题 专题一 简单搜索 非常可乐 HDU - 1495

    题目链接:https://vjudge.net/problem/HDU-1495 题意:有两个空杯(分别是N升和M升)和一罐满的可乐S升,S = N + M,三个容器可以互相倾倒,如果A倒入B,只有两 ...

随机推荐

  1. php数组按值的大小排序

    array_multisort(array_column($nima,'zongfen'),SORT_DESC,$nima);

  2. json数组转java对象

    <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>ison-lib</art ...

  3. uuid生成工具类

    public class UUIDTool { public static String getUUID() { return UUID.randomUUID().toString().replace ...

  4. 第七篇:Jmeter连接MySQL的测试

    .准备一个有数据表格的MySQL数据库: 2.在测试计划面板上点击浏览按钮,把你的JDBC驱动添加进来: mysql-connector-java-5.1.26-bin.jar 3.添加一个线程组-- ...

  5. Java String和StringBuffer和StringBuilder

    最近在牛课网上做了几道字符串操作的题目,好久没有做题了,之前用的也是大一时C语言做的,对Java字符串操作不太了解,所以深入了解一下String类的相关用法 String构造方法 String() 空 ...

  6. 使用Fiddler远程抓包(转载)

    转载自 http://www.cnblogs.com/111testing/p/6436372.html Fiddler简介以及web抓包 一.Fiddler简介 简单来说,Fiddler是一个htt ...

  7. SIGTERM、SIGKILL、SIGINT和SIGQUIT的区别

    转自:http://blog.csdn.net/dai_xiangjun/article/details/41871647 SIGQUIT 在POSIX兼容的平台,SIGQUIT是其控制终端发送到进程 ...

  8. web前端开发浏览器兼容性处理大全

    1.居中问题 div里的内容,IE默认为居中,而FF默认为左对齐,可以尝试增加代码margin: 0 auto; 2.高度问题 两上下排列或嵌套的div,上面的div设置高度(height),如果di ...

  9. javaWEB登录ajax传值

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  10. CyclicBarrier簡介

    package CyclicBarrier; import java.util.concurrent.CyclicBarrier;import java.util.concurrent.atomic. ...