非常可乐 HDU1495
BFS题
一共有六种状态转移 一一枚举就好 设置一个标记数组。 用二重循环可以很清晰的解决代码长的问题
- #include<cstdio>
- #include<cstring>
- #include<queue>
- using namespace std;
- int v[];
- int sign[][][];
- struct cup//记录遍历中3个水杯容藏可乐情况
- {
- int v[];
- int step;
- }temp;
- void pour(int a,int b)//倒水函数,把a杯子中的可乐倒到b杯子中
- {
- int sum=temp.v[a]+temp.v[b];
- if(sum>=v[b])
- temp.v[b]=v[b];
- else
- temp.v[b]=sum;
- temp.v[a]=sum-temp.v[b];
- }
- void bfs()
- {
- int i,j;
- queue<cup>q;
- cup cnt;
- cnt.v[]=v[];
- cnt.v[]=;
- cnt.v[]=;
- cnt.step=;
- q.push(cnt);
- memset(sign,,sizeof(sign));
- sign[v[]][][]=;
- while(!q.empty())
- {
- cnt=q.front();
- q.pop();
- if(cnt.v[]==cnt.v[]&&cnt.v[]==)
- {
- printf("%d\n",cnt.step);
- return ;
- } for(i=;i<;++i)
- {
- for(j=;j<;++j)
- {
- if(i!=j)//自己不倒水给自己
- {
- temp=cnt;//每个水位情况都要把所有操作枚举一遍,所以都要赋值为原始水位情况
- pour(i,j);
- if(!sign[temp.v[]][temp.v[]][temp.v[]])
- {
- temp.step++;
- q.push(temp);
- sign[temp.v[]][temp.v[]][temp.v[]]=;
- }
- }
- }
- }
- }
- printf("NO\n");
- }
- int main()
- {
- while(scanf("%d%d%d",&v[],&v[],&v[])&&v[]||v[]||v[])
- {
- if(v[]>v[])
- {
- int t=v[];
- v[]=v[];
- v[]=t;
- }
- bfs();
- }
- return ;
- }
非常可乐 HDU1495的更多相关文章
- HDU-1495 非常可乐(BFS)
广搜的灵活应用题: 非常可乐 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- 非常可乐(杭电hdu1495)bfs
非常可乐 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- HDU1495 非常可乐 —— BFS + 模拟
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1495 非常可乐 Time Limit: 2000/1000 MS (Java/Others) M ...
- HDU1495 非常可乐
解题思路:简单的宽搜,见代码: #include<cstdio> #include<cstring> #include<algorithm> #include< ...
- HDU-1495 非常可乐 (嵌套结构体-广搜 对比 一般广搜)
题意 大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为.因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一瓶可乐,而且一定要喝的和seeyou一样多.但 ...
- HDU1495 非常可乐(BFS/数论)
大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为.因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一瓶可乐,而且一定要喝的和seeyou一样多.但see ...
- 【HDU - 1495】非常可乐
-->非常可乐 Descriptions: 大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为.因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一 ...
- hdoj 1495 非常可乐【bfs隐式图】
非常可乐 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- HDU1495(bfs)
非常可乐 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
随机推荐
- eclipse2019-03设置代码编辑区背景为图片
一.我的主题设置如下所示 二.找到如下所示或类似的文件夹 三.在该文件夹里的images文件夹里添加图片 四.在CSS目录下的e4-dark_win.css文件中添加如下代码 .MPart Style ...
- 20155334 2016-2017-2 《Java程序设计》第五周学习总结
20155334 2016-2017-2 <Java程序设计>第五周学习总结 教材学习内容总结 第八章:异常处理 Java中所有错误都会被打包为对象,在编程的时候会遇到因各种原因而导致的错 ...
- C static struct
参考链接: http://blog.csdn.net/keyeagle/article/details/6708077/ NOTICE: 静态全局变量 与 普通的全局变量的区别 static 全 ...
- C# List分页
假设你每页10条数据当前是第3页 跳到第4页则:List.Skip((4-1)*10).Take(10) 本文来自SunShine,转载请标明出处: http://do.jhost.cn/sunshi ...
- SpringBoot整合MyBatis(注解版)
详情可以参考Mybatis官方文档 http://www.mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/ (1). ...
- 【漏洞挖掘】攻击对外开放的Docker API接口
https://medium.com/@riccardo.ancarani94/attacking-docker-exposed-api-3e01ffc3c124 1)场景 攻击开放在互联网的Dock ...
- [转] bss段、data段、text段
1.前言 一个程序本质上都是由 BSS 段.DATA段.TEXT段三个组成的. 本文主要分编译时和运行时分别对 对data段 bss段 text段 堆 栈作一简要说明 2. 程序编译时概念说明 程序与 ...
- 所有Windows7下游戏的全屏问题
Win键+R键,打开运行窗口,输入regedit 回车,这样就打开了注册表编辑器,然后,定位到以下位置:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\ ...
- 在分析nginx日志时常用命令总结【转】
1. 利用grep ,wc命令统计某个请求或字符串出现的次数 比如统计GET /app/kevinContent接口在某天的调用次数,则可以使用如下命令: [root@Fastdfs_storage_ ...
- 028_rync和inotify实现实时备份
一.服务节点安装inotify-tools. 确保系统后以下输出=> [root@xxxx]# ll /proc/sys/fs/inotify/ total 0 -rw-r--r-- 1 roo ...