非常可乐

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 7996    Accepted Submission(s): 3195

Problem Description
大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为。因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一瓶可乐,而且一定要喝的和seeyou一样多。但seeyou的手中只有两个杯子,它们的容量分别是N 毫升和M 毫升 可乐的体积为S (S<101)毫升 (正好装满一瓶) ,它们三个之间可以相互倒可乐 (都是没有刻度的,且 S==N+M,101>S>0,N>0,M>0) 。聪明的ACMER你们说他们能平分吗?如果能请输出倒可乐的最少的次数,如果不能输出"NO"。
Input
三个整数 : S 可乐的体积 , N 和 M是两个杯子的容量,以"0 0 0"结束。
Output
如果能平分的话请输出最少要倒的次数,否则输出"NO"。
Sample Input
7 4 3 4 1 3 0 0 0
Sample Output
NO 3
思路:这道题跟NYOJ上的三个水杯那道题是很像的.都是隐式图,需要自己构图,然后利用三重for循环便利所有的情况。第一次到达到那种状况的情况下肯定就是最少的次数。
ac代码:
#include<stdio.h>
#include<string.h>
#include<queue>
#include<algorithm>
using namespace std;
struct node{int V[4],time;
};
int a[4],vis[110][110],adv;
int jud(node temp){//用来判断是否满足题目中的跳出条件。 int a=temp.V[0],b=temp.V[1],c=temp.V[2];if(a==adv&&b==adv)return 1;if(a==adv&&c==adv)return 1;if(b==adv&&c==adv)return 1;
return 0;
}
void bfs(){//对自己所构造的隐式图进行深搜。 memset(vis,0,sizeof(vis));node now,next;queue<node>q;now.V[0]=a[0];now.V[1]=0;now.V[2]=0;now.time=0;vis[a[0]][0]=1;//标记已经出现过的情况。 q.push(now);while(!q.empty()){now=q.front();q.pop();for(int i=0;i<3;i++){//双重for循环遍历所有的情况; for(int j=0;j<3;j++)if(i!=j){next=now;if(now.V[i]+now.V[j]>a[j]){next.V[i]=now.V[i]+now.V[j]-a[j];next.V[j]=a[j];next.time++;}else{next.V[i]=0;next.V[j]=now.V[i]+now.V[j];next.time++;}if(!vis[next.V[0]][next.V[1]]){vis[next.V[0]][next.V[1]]=1;q.push(next);if(jud(next)){printf("%d\n",next.time);return ;}}}}}printf("NO\n");
}
int main(){while(scanf("%d%d%d",&a[0],&a[1],&a[2]),(a[0]||a[1]||a[2])){adv=a[0]/2;if(a[0]%2){//题目中的意思是平分,那么如果是奇数就肯定不能平分了。 printf("NO\n");continue ;}elsebfs();} return 0;
} 

HDOJ--1495--非常可乐(隐式图)相关推荐

  1. 题目2:隐式图的搜索问题(A*算法解决八数码)

    数据结构课程实践系列 题目1:学生成绩档案管理系统(实验准备) 题目2:隐式图的搜索问题(A*算法解决八数码) 题目3:文本文件单词的检索与计数(实验准备) 文章目录 数据结构课程实践系列 题目1:学 ...

  2. 《数据结构课程实践》_02_隐式图的搜索问题_准备工作

    02_隐式图的搜索问题_准备工作 一.实验题目与要求 二.编程语言以及开发环境 三.实验思路 A*算法 四.预习小结 一.实验题目与要求 实验要求: 对九宫重排问题,建立图的启发式搜索求解方法: 用A ...

  3. 《数据结构课程实践》_02_隐式图的搜索问题_实现

    02_隐式图的搜索问题_实现 一.实验题目 二.编程语言以及开发环境 三.源代码 1.main类 2.节点类 3.算法类 四.运行结果 五.实验小结 一.实验题目 实验要求: 对九宫重排问题,建立图的 ...

  4. 隐式图的搜索问题(九宫重排)——实验准备

    隐式图的搜索问题(九宫重排)--实验准备 隐式图的搜索问题(九宫重排) 实验任务 实验要求 A*算法 隐式图的搜索问题(九宫重排) 实验任务 对九宫重排问题,建立图的启发式搜索求解方法. 用A*算法求 ...

  5. 隐式图的搜索问题(九宫重排)——项目实现

    隐式图的搜索问题(九宫重排)--项目实现 隐式图的搜索问题(九宫重排)--项目实现 源代码 运行结果 隐式图的搜索问题(九宫重排)--项目实现 源代码 package SearchPath;publi ...

  6. 2.隐式图的搜索问题

    题目2:隐式图的搜索问题 实验内容 对九宫重排问题,建立图的启发式搜索求解方法: 用A*算法求解九宫重排问题. 实验要求 3х3九宫棋盘,放置数码为1~8的8个棋子,棋盘中留有一个空格,空格周围的棋子 ...

  7. 题目2:隐式图的搜索问题(实验准备)

    题目2:隐式图的搜索问题(实验准备) 实验内容 实验要求 编程语言的选择 项目思路 项目解析 算法选择 A*算法 实验内容 对九宫重排问题,建立图的启发式搜索求解方法: 用A*算法求解九宫重排问题. ...

  8. hdoj--1495--非常可乐(搜索+隐式图)

    非常可乐 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  9. HDOJ 1495非常可乐

    非常可乐原题链接 题目描述: 思路: 当可乐总量为奇数时,不可能均分,直接输出结果:将i被子倒入j杯中时,分两种情况,一种是能倒完,一种还有剩余 AC代码: #include <iostream ...

  10. 实践项目—隐式图的搜索(预习报告)

    文章目录 实验内容 实验要求 编程语言及开发环境 实验思路 一.A*算法 二.A*算法解决九宫格问题 实验内容 1.对九宫重排问题,建立图的启发式搜索求解方法. 2.用A*算法求救九宫重排问题. 实验 ...

最新文章

  1. iOS 11.3立春后发布,电量用得快的人千万别升级!
  2. JAVA SE学习day_06:字符流、异常处理
  3. Coursera课程Python for everyone:chapter10
  4. 其他技术(Path)
  5. 使用 Packer、Ansible 和 Terraform 构建不可变的基础设施
  6. 作者:邓景文(1982-),女,中国联合网络通信集团有限公司电子商务部工程师...
  7. 17.1加入主题模型的文本增强
  8. ArcGIS中的北京54和西安80投影坐标系详解
  9. win10c语言关机,win10电脑自动关机命令
  10. 小游戏SDK对提高用户留存率的优势
  11. mastercam9.1按alt键卡机,mastercam输入参数卡机需要win10输入法兼容性设置
  12. 7654劫持火狐解决办法
  13. BCIduino社区|HY-BCI Pro多通道科研级脑电放大器接收lsl脑电数据并进行显示
  14. u盘win7纯净版_教你安装纯净版windows系统
  15. igraph基本用法
  16. (glidejs)glidejs的使用
  17. 7-5 循环日程表 (10 分)
  18. Android电池矫正方法
  19. C++历史背景 [C++开发实战](边学边练哈 (#^.^#)~)
  20. 李炎恢老师HTML5+CSS3教程与课件代码 下载

热门文章

  1. 盛大“传奇”的网游启示录
  2. QTP自动化测试进阶
  3. 免费讲座:数据库工程实施中的性能保证
  4. linux:账号管理
  5. linux的vi详细命令
  6. idea改类名快捷键_IDEA使用之快捷键(default设置)
  7. 宝塔面板连接阿里云服务器、及部署网页项目教程
  8. L1-027 出租 (20 分)—团体程序设计天梯赛
  9. Android Progress、SeekBar 实现进度条、可滑动的进度条
  10. Java中try与catch的使用