人生中第一个AC的广搜题目,喵呜,C++的STL果真不错,

  1. #include<stdio.h>
  2. #include<queue>
  3. #include<string.h>
  4. #include<windows.h>
  5. using namespace std;
  6. bool visited[100][100][100];
  7. int a, b, c;
  8. struct Node{
  9. int a;
  10. int b;
  11. int c;
  12. int s;
  13. };
  14. Node water;
  15. Node cup;
  16. Node fish;
  17. Node dream;
  18. Node gb(Node key, int n){
  19. switch(n){
  20. case 0:
  21. key.b+=key.a;
  22. if(key.b>water.b){
  23. key.a=key.b-water.b;
  24. key.b=water.b;
  25. }
  26. else{
  27. key.a = 0;
  28. }
  29. break;
  30. case 1:
  31. key.c+=key.a;
  32. if(key.c>water.c){
  33. key.a=key.c-water.c;
  34. key.c=water.c;
  35. }
  36. else{
  37. key.a = 0;
  38. }
  39. break;
  40. case 2:
  41. key.c+=key.b;
  42. if(key.c>water.c){
  43. key.b=key.c-water.c;
  44. key.c=water.c;
  45. }
  46. else{
  47. key.b = 0;
  48. }
  49. break;
  50. case 3:
  51. key.a+=key.c;
  52. if(key.a>water.a){
  53. key.c=key.a-water.a;
  54. key.a=water.a;
  55. }
  56. else {
  57. key.c = 0;
  58. }
  59. break;
  60. case 4:
  61. key.a+=key.b;
  62. if(key.a>water.a){
  63. key.b=key.a-water.a;
  64. key.a=water.a;
  65. }
  66. else{
  67. key.b = 0;
  68. }
  69. break;
  70. case 5:
  71. key.b+=key.c;
  72. if(key.b>water.b){
  73. key.c=key.b-water.b;
  74. key.b=water.b;
  75. }
  76. else{
  77. key.c = 0;
  78. }
  79. break;
  80. }
  81. return key;
  82. }
  83. int main(){
  84. int i, sum, n;
  85. scanf("%d",&n);
  86. while(n--){
  87.  
  88. queue<Node>num;
  89.  
  90. scanf("%d%d%d",&water.a,&water.b,&water.c);
  91. scanf("%d%d%d",&fish.a,&fish.b,&fish.c);
  92. memset(visited, false, sizeof(visited));
  93. cup.a = water.a;
  94. cup.b=0;
  95. cup.c=0;
  96. cup.s=0;
  97. visited[cup.a][0][0] = true;
  98. num.push(cup);
  99. while(!num.empty()){
  100. cup=num.front();
  101. if((cup.a==fish.a)&&(cup.b==fish.b)) break;
  102. for(i=0;i<6;i++){
  103. dream=gb(cup,i);
  104. dream.s++;
  105. if(visited[dream.a][dream.b][dream.c] == false){
  106. num.push(dream);
  107. visited[dream.a][dream.b][dream.c] = true;
  108. }
  109. }
  110. num.pop();
  111. }
  112. if(num.empty()){
  113. printf("-1\n");
  114. }else{
  115. printf("%d\n",cup.s);
  116. }
  117. }
  118. return 0;
  119. }

若是对广搜的概念还是不懂的话,有道最好的入门题目,http://poj.org/problem?id=3278

大家加油

版权声明:本文为博主原创文章,未经博主允许不得转载。

NYOJ-21 三个水杯 AC 分类: NYOJ 2014-02-08 11:35 174人阅读 评论(0) 收藏的更多相关文章

  1. C#多线程(上) 分类: C# 线程 2015-03-09 10:35 174人阅读 评论(0) 收藏

    一.多线程的相关概念 什么是进程? 当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源. 而一个进程又是由多个线程所组成的. 什么是线程? 线程是程序中的一个执行 ...

  2. 8大排序算法图文讲解 分类: Brush Mode 2014-08-18 11:49 78人阅读 评论(0) 收藏

    排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存. 常见的内部排序算法有:插入排序.希尔排序. ...

  3. C语言之void类型及void指针 分类: C/C++ 2015-07-13 11:24 8人阅读 评论(0) 收藏

    原文网址:http://www.cnblogs.com/pengyingh/articles/2407267.html 1.概述 许多初学者对C/C 语言中的void及void指针类型不甚理解,因此在 ...

  4. iOS调用相机,相册,上传头像 分类: ios技术 2015-04-14 11:23 256人阅读 评论(0) 收藏

    一.新建工程 二.拖控件,创建映射 三.在.h中加入delegate @interface ViewController : UIViewController 复制代码 四.实现按钮事件 -(IBAc ...

  5. iOS开发网络数据之AFNetworking使用 分类: ios技术 2015-04-03 16:35 105人阅读 评论(0) 收藏

    http网络库是集XML解析,Json解析,网络图片下载,plist解析,数据流请求操作,上传,下载,缓存等网络众多功能于一身的强大的类库.最新版本支持session,xctool单元测试.网络获取数 ...

  6. IOS即时通讯XMPP搭建openfire服务器 分类: ios技术 2015-03-07 11:30 53人阅读 评论(0) 收藏

    一.下载并安装openfire 1.到http://www.igniterealtime.org/downloads/index.jsp下载最新openfire for mac版 比如:Openfir ...

  7. 百度编辑器UEditor ASP.NET示例Demo 分类: ASP.NET 2015-01-12 11:18 346人阅读 评论(0) 收藏

    在百度编辑器示例代码基础上进行了修改,封装成类库,只需简单配置即可使用. 完整demo下载 版权声明:本文为博主原创文章,未经博主允许不得转载.

  8. ASP.NET 自定义URL重写 分类: ASP.NET 2014-10-31 16:05 174人阅读 评论(0) 收藏

    一.功能说明: 可以解决类似 http://****/news 情形,Url路径支持正则匹配. 二.操作步骤: 1.增加URL重写模块: using System; using System.IO; ...

  9. IBM AppScan 安全扫描:加密会话(SSL)Cookie 中缺少 Secure 属性 处理办法 分类: 数据安全 2014-06-28 11:35 2805人阅读 评论(0) 收藏

    问题描述: 原因分析: 服务器开启了Https时,cookie的Secure属性应设为true:   解决办法: 1.服务器配置Https SSL方式,参考:https://support.micro ...

随机推荐

  1. centos内核优化--转至网络

    A.关闭selinux(可以预防nginx修改根目录后访问出现404或者403) vi /etc/selinux/config SELINUX=disabled B.修改打开最大文件数句柄也就是 so ...

  2. Mysql varchar大小长度问题介绍

    如果被 varchar 超过上述的 b 规则,被强转成 text 类型,则每个字段占用定义长度为 11 字节,当然这已经不是 varchar 了4.0版本以下,varchar(20),指的是20字节, ...

  3. php中的一些小细节(1)

    <?php $a=false; echo $a; //var_dump($a); ?> 输出结果为:     (即为空): 为什么会这样子? 查看官网对echo的相关资料得出: 结论:ec ...

  4. 光迁PING值延迟计算!以及到中国最快的美国机房是哪个机房?

    美国圣安娜KT机房/美国KT机房/美国KT服务器 KT机房是美国直达大陆最快的机房,ping值一般为195MS,是做web服务器的首选机房,深受中小站长的欢迎! 我们平时测试美国服务器的速度,都是通过 ...

  5. STM32F0xx_USART收发配置详细过程

    前言 串口对于处理器来说算是一种标配,也是在软件开发中必不可少的,那就是使用串口来调试信息(打印出相应的信息).STM32F0系列的芯片,串口根据型号不同,数量也不同,从1个到8个不等. 今天主要总结 ...

  6. Linux下如何将数据库脚本文件从sh格式变为sql格式

    在从事软件开发的过程中,经常会涉及到在Linux下将数据库脚本文件从sh格式变为sql格式的问题.本文以一个实际的脚本文件为例,说明格式转换的过程.        1. sh文件内容 本文中的文件名为 ...

  7. SoundCloud 的开发功能

    SoundCloud开发功能:https://developers.soundcloud.com/docs     来自为知笔记(Wiz)

  8. Android 创建单例模式的几种方法

    java模式之单例模式:单例模式确保一个类只有一个实例,自行提供这个实例并向整个系统提供这个实例.特点:1,一个类只能有一个实例2,自己创建这个实例3,整个系统都要使用这个实例 Singleton模式 ...

  9. 鲁棒性是 Robustness

    鲁棒性是 Robustness 的音译,是指当系统受到不正常干扰时,是否还能保证主体功能正常运作.可参考 维基百科:http://zh.wikipedia.org/zh/ 鲁棒性 _( 计算机科学 ) ...

  10. php中$this、static、final、const、self 等几个关键字的用法

    <?phpclass A { public static function get_self(){ return new self(); } public static function get ...