题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=21

BFS判环,vis标记状态即可。

#include <stdio.h>
#include <queue>
#include <string.h>using namespace std;bool vis[100][100][100];struct Cup
{int v[3];int step;
};int s[3],t[3];int bfs()
{memset(vis,false,sizeof(vis));Cup start;start.step = 0;start.v[0] = s[0];start.v[1] = 0;start.v[2] = 0;vis[s[0]][0][0] = true;queue<Cup> Q;Q.push(start);while(!Q.empty()){start = Q.front();Q.pop();if(start.v[0]==t[0]&&start.v[1]==t[1]&&start.v[2]==t[2])return start.step;for(int i=0; i<3; i++){for(int j=0; j<3; j++){Cup tmp = start;if(i==j||tmp.v[i]==0||tmp.v[j]==s[j])continue;if(tmp.v[i]+tmp.v[j]<=s[j]){tmp.v[j] = tmp.v[i]+tmp.v[j];tmp.v[i] = 0;}else{tmp.v[i] = tmp.v[i] - (s[j]-tmp.v[j]);tmp.v[j] = s[j];}tmp.step++;if(!vis[tmp.v[0]][tmp.v[1]][tmp.v[2]]){Q.push(tmp);vis[tmp.v[0]][tmp.v[1]][tmp.v[2]] = true;}}}}return -1;
}int main()
{int cases;scanf("%d",&cases);while(cases--){for(int i=0; i<3; i++)scanf("%d",&s[i]);for(int i=0; i<3; i++)scanf("%d",&t[i]);printf("%d\n",bfs());}return 0;
}

转载于:https://www.cnblogs.com/TreeDream/p/5742186.html

NYOJ(21),BFS,三个水杯相关推荐

  1. nyoj 21 三个水杯 BFS

    三个水杯 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 给出三个水杯,大小不一,并且只有最大的水杯的水是装满的,其余两个为空杯子.三个水杯之间相互倒水,并且水杯没有标识 ...

  2. [ACM_NYOJ_21]三个水杯(BFS广度优先搜索)

    三个水杯 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 给出三个水杯,大小不一,并且只有最大的水杯的水是装满的,其余两个为空杯子.三个水杯之间相互倒水,并且水杯没有标识,只 ...

  3. NYoj21 三个水杯

    三个水杯 时间限制: 1000 ms  |  内存限制: 65535 KB 难度: 4 描述 给出三个水杯,大小不一,并且只有最大的水杯的水是装满的,其余两个为空杯子.三个水杯之间相互倒水,并且水杯没 ...

  4. nyoj21 三个水杯

    nyoj21 三个水杯 时空限制    1000ms/128MB 题目描述: 给出三个水杯,大小不一,并且只有最大的水杯的水是装满的,其余两个为空杯子.三个水杯之间相互倒水,并且水杯没有标识,只能根据 ...

  5. 《分布式操作系统》知识点(15~21)三

    注: (4)8 P160:(4)代表该道题属于第4章的内容,8是题号(第8题),P160是该习题在书中的大体页码. (3)15说明基于时间戳的乐观并发控制算法的基本原理,并举例说明.P110 答:所谓 ...

  6. 美通社企业新闻汇总 | 2019.2.21 | 中国三家IC设计企业营收规模超10亿美元;百威为中国引入北海道百年传奇啤酒...

    要闻 猝死理赔年轻化,恶性肿瘤仍为头号健康"杀手" <福布斯旅游指南>公布2019年度酒店星级评级名单 2018年中国三家IC设计企业营收规模超10亿美元 西门子医疗在 ...

  7. NYOJ 题目68 三点顺序

    三点顺序 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 现在给你不共线的三个点A,B,C的坐标,它们一定能组成一个三角形,现在让你判断A,B,C是顺时针给出的还是逆时针 ...

  8. 算法设计大赛21题---三升序列(DFS)

    算法设计大赛21. 矩阵为: VLPWJVVNNZSWFGHSFRBCOIJTPYNEURPIGKQGPSXUGNELGRVZAG SDLLOVGRTWEYZKKXNKIRWGZWXWRHKXFASA ...

  9. NYOJ 整数划分(三) (划分数大集合)

    题意:虽然是中文题意但是还是想上一下题 题目描述 整数划分是一个经典的问题.请写一个程序,完成以下要求. 输入 每组输入是两个整数n和k.(1 <= n <= 50, 1 <= k ...

最新文章

  1. 自定义类型数组的初始化
  2. 如何提高强化学习效果?内在奖励和辅助任务
  3. Python 之 matplotlib (五)Annotation注解
  4. python opencv转换bytesio
  5. java线程主要状态及转换_Java线程状态转换及控制
  6. 4、java中的流程控制(程序结构)
  7. 阿里巴巴Linux开源镜像站 华为Linux开源镜像站 Linux宝塔面板
  8. python+selenium之自动生成excle,保存到指定的目录下
  9. WSE2.0中X509安全令牌的使用
  10. Linux auditd rules generate 通用linux审计规则生成工具DevOps CI/CD持续集成交付 tools
  11. 《海量数据库解决方案》读后感
  12. python数据分析与发展常用哪些软件_常用数据分析软件比较
  13. 流程和企业成熟度模型(PEMM)
  14. osgEarth gpx文件 16.feature_gpx.earth
  15. WPS简历模板的图标怎么修改_指导|让疫情之下的应届生,求职简历脱颖而出
  16. Android武林大会(转)
  17. Mysql 免安装版本
  18. 如何使用CSS绘制奥运五环标志
  19. android qq apk,仿QQ获取手机中的APK并分享的实现
  20. 解决在MATLAB Simulink Library Browser找不到Car Sim S-Function的问题

热门文章

  1. c#自动向网页Post信息并提取返回的信息
  2. MySQL-MMM架构部署(有图)
  3. JavaScript日历(es5版本)
  4. 分布式监控报警平台Centreon之:Centreon依赖安装
  5. 美国部分Android手机竟将用户隐私数据回传至上海服务器!
  6. html combobox select控件设置默认选项
  7. java NIO概述
  8. 点击别的地方隐藏下拉列表
  9. linux 开机自动启动脚本方法
  10. 利用PIX来搭建×××