hdu 1495 (搜索) 非常可乐
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 (搜索) 非常可乐的更多相关文章
- 【HDU - 1495】非常可乐
-->非常可乐 Descriptions: 大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为.因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一 ...
- BFS(倒水问题) HDU 1495 非常可乐
题目传送门 /* BFS:倒水问题,当C是奇数时无解.一共有六种情况,只要条件符合就入队,我在当该状态vised时写了continue 结果找了半天才发现bug,泪流满面....(网上找份好看的题解都 ...
- 【BFS】HDU 1495
直达–> HDU 1495 非常可乐 相似题联动–>POJ 3414 Pots 题意:中文题,不解释. 思路:三个杯子倒来倒去,最后能让其中两个平分即可.可能性六种.判定的时候注意第三个杯 ...
- hdu 5887 搜索+剪枝
Herbs Gathering Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- hdu 5636 搜索 BestCoder Round #74 (div.2)
Shortest Path Accepts: 40 Submissions: 610 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: ...
- Square HDU 1518 搜索
Square HDU 1518 搜索 题意 原题链接 给你一定若干个木棒,让你使用它们组成一个四边形,要求这些木棒必须全部使用. 解题思路 木棒有多种组合方式,使用搜索来进行寻找,这里需要进行优化,不 ...
- HDU 1495 非常可乐 BFS 搜索
http://acm.hdu.edu.cn/showproblem.php?pid=1495 题目就不说了, 说说思路! 倒可乐 无非有6种情况: 1. S 向 M 倒 2. S 向 N 倒 3. N ...
- HDU 1495 非常可乐 BFS搜索
题意:有个为三个杯子(杯子没有刻度),体积为s,n,m,s=m+n, 刚开始只有体积为s的杯子装满可乐,可以互相倒,问你最少的次数使可乐均分,如果没有结果,输出-1; 分析:直接互相倒就完了,BFS模 ...
- kuangbin专题 专题一 简单搜索 非常可乐 HDU - 1495
题目链接:https://vjudge.net/problem/HDU-1495 题意:有两个空杯(分别是N升和M升)和一罐满的可乐S升,S = N + M,三个容器可以互相倾倒,如果A倒入B,只有两 ...
随机推荐
- Javascript中构造函数的返回值问题和new对象的过程
首先明确一点:javascript中构造函数是不需要有返回值的,这一点跟java很类似.可以认为构造函数和普通函数的最大差别就是:构造函数中没有return语句,普通函数可以有return语句:构造函 ...
- 开始jQuery学习之旅
jQuery写法 //实例写法$('div').css({width:200,backgroundColor:'red'}); 参数规则 // css selector$('.wrapper ul l ...
- tomcat支持 https
首先 安装nginx ,在nginx.conf 中引入 include /app/conf/nginx/vhosts/*.conf; 配置 并在conf/vhosts 目录 中配置virtual.c ...
- 三种方式解决你的js加载乱码
第一种方式——编码统一 我们以前觉得出现乱码的原因是因为编码不统一,就是因为我们设置编码统一之后,就解决了问题,所以,让html和js的编码统一,是最简单的一个乱码解决方式,原因是什么,是因为,如果你 ...
- js获取url传值的方法
这篇文章主要介绍了js获取url传值的方法,实例分析了字符串分割与正则分析两种方法,并补充了一个基于正则匹配实现的js获取url的get传值函数,需要的朋友可以参考下 js获取url参数值: inde ...
- js 获取 this 的属性 obj[0].getAttribute
js 获取 this 的属性 obj[0].getAttribute
- Jmeter(十九) Md5加密操作之-------BeanShell PreProcessor(转载)
转载自 http://www.cnblogs.com/yangxia-test 背景: 有一些登录会做一些md5校验,通过jmeter的BeanShell可以解决MD5加密情况. 1.首先需要一个解码 ...
- 581. Shortest Unsorted Continuous Subarray
Given an integer array, you need to find one continuous subarray that if you only sort this subarr ...
- WDlinux 修改后台默认8080端口的方法
修改8080端口正确方法 新版本: 方法一: apache sed -i 's/8080/8088/' /www/wdlinux/wdapache/conf/httpd.conf 然后记得修改防火墙i ...
- CSS3 Backgrounds相关介绍
CSS3 Backgrounds相关介绍 1.背景图片(background images)是在padding-box的左上角落脚安家的,我们可以使用background-position属性改变默认 ...