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,只有两 ...
随机推荐
- 无法加载ISAPI 筛选器 当前配置只支持加载为 AMD64 处理器体系结构创建的映像
无法加载ISAPI 筛选器 当前配置只支持加载为 AMD64 处理器体系结构创建的映像 2011-11-9 0:18:49来源:本站原创作者:清晨320我要评论(0) 今天服务器的伪静态死活加载不上去 ...
- 初探 objc_msgSend函数
1.0 执行某个对象的方法 [receiver message] 被编译为: id objc_msgSend(id self,SEL op,...): objc_msgSend 发送信息的过程 ...
- Android代码规范
Android代码规范——文章来源<IT蓝豹>http://itlanbao.com/preview.aspx#1,0 [-]一Import的次序二缩进Indentation总则示例代码规 ...
- Latex公式示范
\(A_\alpha(x)\) \(\qquad\) \(a^2+b^2=c^2 \) \(\qquad\) \(\sum\limits_{m=0}^\inft ...
- 同时启动多个Tomcat 和 Linux部署多个tomcat
a.减压2份tomcat文件 b.修改其中一个tomcat 的http访问端口(默认为8080端口,这里改为8091) c.修改其中一个tomcat 的Shutdown端口(默认为8005端口,这里改 ...
- git flow分支管理
阅读目录 两种核心分支 三种临时分支 Git Flow流程示例代码 Git Flow工具 分支命名规范 总结 git flow是Vincent Driessen提出了一个分支管理的策略,非常值得借鉴. ...
- SOA 是什么
SOA 英文:Service-Oriented Architecture,面向服务的架构. 是一种面向通用集成服务的.松耦合的架构实现方式,是web时代服务发展的产物: 使用"分层" ...
- ext.js打印出提示弹窗(鼓捣了两天终于尼玛出来了)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- openvpn-admin(openvpn web管理 )
openvpn 两种认证简介: 1.key分发: 在服务器端生成秘钥,然后下载到本地,将服务器端的ca.crt xx.crt xx.key ta.key(如果服务器启用的话需要,未开启的话不需要,功能 ...
- wasserstein 距离
https://blog.csdn.net/nockinonheavensdoor/article/details/82055147 注明:直观理解而已,正儿八经的严谨证明看最下面的参考. Earth ...