HDU - 1495 非常可乐 bfs互倒三杯水
非常可乐
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 16071 Accepted Submission(s): 6488
4 1 3
0 0 0
3
- #include<stdio.h>
- #include<string.h>
- #include<queue>
- using namespace std;
- struct Node{
- int x,y,z,s;
- }node;
- int bo[][][];
- int main()
- {
- int a,b,c,i;
- while(scanf("%d%d%d",&a,&b,&c)&&!(a==&&b==&&c==)){
- if(a&){
- printf("NO\n");
- continue;
- }
- queue<Node> q;
- memset(bo,,sizeof(bo));
- bo[a][][]=;
- node.x=a;
- node.y=;
- node.z=;
- node.s=;
- q.push(node);
- int f=;
- while(q.size()){
- for(i=;i<=;i++){
- int tx=q.front().x;
- int ty=q.front().y;
- int tz=q.front().z;
- int ttx,tty,ttz;
- if(i==){
- ttx=tx>b-ty?tx-b+ty:;
- tty=tx>b-ty?b:ty+tx;
- ttz=tz;
- }
- if(i==){
- ttx=tx>c-tz?tx-c+tz:;
- tty=ty;
- ttz=tx>c-tz?c:tz+tx;
- }
- if(i==){
- ttx=ty>a-tx?a:tx+ty;
- tty=ty>a-tx?ty-a+tx:;
- ttz=tz;
- }
- if(i==){
- ttx=tx;
- tty=ty>c-tz?ty-c+tz:;
- ttz=ty>c-tz?c:tz+ty;
- }
- if(i==){
- ttx=tz>a-tx?a:tx+tz;
- tty=ty;
- ttz=tz>a-tx?tz-a+tx:;
- }
- if(i==){
- ttx=tx;
- tty=tz>b-ty?b:ty+tz;
- ttz=tz>b-ty?tz-b+ty:;
- }
- if(ttx==a/&&(tty==a/||ttz==a/)){
- f=q.front().s+;
- break;
- }
- if(bo[ttx][tty][ttz]==){
- bo[ttx][tty][ttz]=;
- node.x=ttx;
- node.y=tty;
- node.z=ttz;
- node.s=q.front().s+;
- q.push(node);
- }
- }
- if(f!=) break;
- q.pop();
- }
- if(f==) printf("NO\n");
- else printf("%d\n",f);
- }
- return ;
- }
HDU - 1495 非常可乐 bfs互倒三杯水的更多相关文章
- HDU 1495 非常可乐 BFS 搜索
http://acm.hdu.edu.cn/showproblem.php?pid=1495 题目就不说了, 说说思路! 倒可乐 无非有6种情况: 1. S 向 M 倒 2. S 向 N 倒 3. N ...
- (step4.2.5)hdu 1495(非常可乐——BFS)
题目大意:输入三个整数 a,b,c. a : 可乐瓶的容量,b: 甲杯的容量 ,c: 乙杯的容量.问能否用这三个被来实现饮料的平分???如果可以输出倒饮料的次数, 否则输出NO 解题思路:BFS ...
- HDU 1495 非常可乐 BFS搜索
题意:有个为三个杯子(杯子没有刻度),体积为s,n,m,s=m+n, 刚开始只有体积为s的杯子装满可乐,可以互相倒,问你最少的次数使可乐均分,如果没有结果,输出-1; 分析:直接互相倒就完了,BFS模 ...
- HDU 1495 非常可乐 bfs 难度:1
http://acm.hdu.edu.cn/showproblem.php?pid=1495 第三个杯子的盛水量可由前两个杯子得到,而前两个杯子状态总数在100*100以内,穷举可实现 #includ ...
- HDU 1495 非常可乐 BFS
题目大意:中文题不说了. 题目思路:我有同学用GCD数论写出来的代码很简洁,但是很抱歉,数论蒟蒻,我觉得比赛的时候我没办法推出.如果用BFS的话思路很简单的,就是6方向广搜,只不过稍微麻烦点.具体看代 ...
- BFS(倒水问题) HDU 1495 非常可乐
题目传送门 /* BFS:倒水问题,当C是奇数时无解.一共有六种情况,只要条件符合就入队,我在当该状态vised时写了continue 结果找了半天才发现bug,泪流满面....(网上找份好看的题解都 ...
- HDU 1495 非常可乐(数论,BFS)
非常可乐 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- 非常可乐---hdu 1495(BFS)
http://acm.hdu.edu.cn/showproblem.php?pid=1495 题意: 有3个杯子a b c:a=b+c:然后刚开始时只有a是满的,其它为空的,然后a b c三个之间互相 ...
- HDU 1495 非常可乐(BFS倒水问题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1495 题目大意:只有两个杯子,它们的容量分别是N 毫升和M 毫升 可乐的体积为S (S<101) ...
随机推荐
- 微信热补丁 Tinker 的实践演进之路
http://dev.qq.com/topic/57ad7a70eaed47bb2699e68e http://dev.qq.com/topic/57a30878ac3a1fb613dd40eb ht ...
- CASIO fx-991es Plus科学计算器使用技巧
关于输出: 默认是按照自然书写格式显示的,计算结果是按照分数形式显示,如0.5x0.5,会显示=1/4.虽然很直观,但是在测量和估算上略有不便.此时用 SHIFT --> MODE (也就是se ...
- [学些东西]用爬虫练习网站来练习burp suite
最近看爬虫的内容.刚好看到黑板客爬虫第二关http://www.heibanke.com/lesson/crawler_ex01. ADO的i春秋课程里面提到的.另外推荐学习爬虫的好书<web ...
- live555 RTSP推送到Darwin出现404错误的解决
我们将Darwin部署到公网,接收live555 RTSP/RTP推送的时候,经常会出现在SETUP步骤Darwin返回404错误,经过查找原因,主要是Darwin对live555推送的sdp信息中的 ...
- JAVA工厂方法模式(Factory Method)
1.普通工厂模式 普通工厂模式:就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建. 1-1.建立Sender接口 public interface Sender { public void ...
- 【Effective C++】资源管理
资源:动态分配的内存.文件描述器.互斥锁.图形界面中的字型与笔刷.数据库连接以及网络sockets等,无论哪一种资源,重要的是,当你不再使用它时,必须将它还给系统. 条款13:以对象管理资源 当我们向 ...
- appium(4)-Automating mobile web apps
Automating mobile web apps If you’re interested in automating your web app in Mobile Safari on iOS o ...
- KeyChain相关参数的说明
#pragma mark- 密钥类型 //密钥类型键 //CFTypeRef kSecClass // //值 //CFTypeRef kSecClassGenericPassword ...
- Codeforces Round #254 (Div. 2) A. DZY Loves Chessboard —— dfs
题目链接: http://codeforces.com/problemset/problem/445/A 题解: 这道题是在现场赛的最后一分钟通过的,相当惊险,而且做的过程也很曲折. 先是用递推,结果 ...
- ios 使用json
1.从https://github.com/stig/json-framework/中下载json框架:json-framework 2.解压下载的包,将class文件夹下的所有文件导入到当前工程下. ...