[kuangbin带你飞]专题一 简单搜索 - M - 非常可乐
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
bool cup[][][];
struct dot
{
int a;
int b;
int c;
int s;
};
int x, y, z;
bool flag; int clam(int a, int b, int c)
{
int s;
switch(c)
{
case : s = x; break;
case : s = y; break;
case : s = z; break;
}
if( a+b < s) return a;
else return s-b;
} int main()
{
// freopen("in.in","r",stdin);
// freopen("out.txt","w",stdout);
while(scanf("%d%d%d",&x,&y,&z),x|y|z)
{
if( x& )
{
printf( "NO\n" );
continue;
}
memset(cup,false,sizeof(cup));
flag = false;
queue<dot>q;
dot s, t;
s.a = x;
s.b = ;
s.c = ;
s.s = ;
q.push(s);
while(q.size())
{
s = q.front();
q.pop();
cup[s.a][s.b][s.c] = true; if((s.a==x/ && s.b==x/) || (s.c==x/ && s.b==x/) || (s.c==x/ && s.a==x/) )
{
flag = true;
break;
}
t.s = s.s + ; t.a = s.a - clam(s.a,s.b,);
t.b = s.b + clam(s.a,s.b,);
t.c = s.c;
if(cup[t.a][t.b][t.c]==false) q.push(t);
t.a = s.a + clam(s.b,s.a,);
t.b = s.b - clam(s.b,s.a,);
t.c = s.c;
if(cup[t.a][t.b][t.c]==false) q.push(t);
t.a = s.a;
t.b = s.b + clam(s.c,s.b,);
t.c = s.c - clam(s.c,s.b,);
if(cup[t.a][t.b][t.c]==false) q.push(t);
t.a = s.a;
t.b = s.b - clam(s.b,s.c,);
t.c = s.c + clam(s.b,s.c,);
if(cup[t.a][t.b][t.c]==false) q.push(t);
t.a = s.a - clam(s.a,s.c,);
t.b = s.b;
t.c = s.c + clam(s.a,s.c,);
if(cup[t.a][t.b][t.c]==false) q.push(t);
t.a = s.a + clam(s.c,s.a,);
t.b = s.b;
t.c = s.c - clam(s.c,s.a,);
if(cup[t.a][t.b][t.c]==false) q.push(t);
}
if(flag)
{
while(q.size()) q.pop();
printf("%d\n",s.s);
}
else printf("NO\n"); }
return ;
}
[kuangbin带你飞]专题一 简单搜索 - M - 非常可乐的更多相关文章
- [kuangbin带你飞]专题一 简单搜索 题解报告
又重头开始刷kuangbin,有些题用了和以前不一样的思路解决.全部题解如下 点击每道题的标题即可跳转至VJ题目页面. A-棋盘问题 棋子不能摆在相同行和相同列,所以我们可以依此枚举每一行,然后标记每 ...
- [kuangbin带你飞]专题一 简单搜索(回顾)
A - 棋盘问题 POJ - 1321 注意条件:不能每放一个棋子,就标记一行和一列,我们直接枚举每一行就可以了. AC代码: #include<iostream> #include< ...
- [kuangbin带你飞]专题一 简单搜索 - E - Find The Multiple
//Memory Time //2236K 32MS #include<iostream> using namespace std; ]; //保存每次mod n的余数 //由于198的余 ...
- [kuangbin带你飞]专题一 简单搜索 棋盘问题
题来:链接https://vjudge.net/problem/OpenJ_Bailian-132 J - 棋盘问题 1.题目: 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别. ...
- [kuangbin带你飞]专题一 简单搜索
ID Origin Title 454 / 1008 Problem A POJ 1321 棋盘问题 328 / 854 Problem B POJ 2251 Dungeon Ma ...
- [kuangbin带你飞]专题一 简单搜索 回顾总结
第二题:bfs,忘了将queue清空. 第三题:bfs,记得使用vis数组,防止重复入队
- 迷宫问题 POJ - 3984 [kuangbin带你飞]专题一 简单搜索
定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, ...
- [kuangbin带你飞]专题一 简单搜索 Find a way HDU - 2612
Pass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at finally. Leave Ningbo one year ...
- Catch That Cow POJ - 3278 [kuangbin带你飞]专题一 简单搜索
Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. ...
随机推荐
- 如何使用android-support-V7包中ActionBar(Eclipse版)
$*********************************************************************************************$ 博主推荐 ...
- Windows系统文件夹共享与隐藏共享
Windows用户之间建立共享文件夹提供共享服务 建立共享文件夹 Window共享:本地网络-->属性-->共享-->高级共享 设置共享名-->另一台主机输入共享主机的IP ...
- Jquery轻量级插件--操作URL
调用: > "?action=view§ion=info&id=123&debug&testy[]=true&testy[]=false ...
- 关于BUG管理工具的操作总结。(禅道)
禅道是第一款国产的优秀开源项目管理软件.先进的管理思想,合理的软件架构,简洁实效的操作,优雅的代码实现,灵活的扩展机制,强大而易用的api 调用机制,多语言支持,多风格支持,搜索功能,统计功能——这一 ...
- vue中配置可修改的服务器接口api
https://www.jianshu.com/p/377bfd2d9034?utm_campaign 太坑了,找了全网,几乎都不能用,也不知道哪写错了,这个是可以用的.
- 用Nginx搭建CDN服务器方法-开启Nginx缓存与镜像,自建图片服务器
利用Nginx的proxy_cache搭建缓存服务器一:编译ngx_cache_purge1.Nginx的Proxy_cache是根据Key值md5哈希存储缓存,支持任意的Key,例如你可以根据”域名 ...
- git分布式版本控制系统权威指南学习笔记(五):git checkout
文章目录 分离头指针 通过cat可以查看当前的分支 通过branch查看当前分支 checkout commitId(真正的
- 1、Appium Desktop介绍
Appium Desktop是一款适用于Mac,Windows和Linux的开源应用程序,它以美观而灵活的用户界面为您提供Appium自动化服务器的强大功能.它是几个Appium相关工具的组合: Ap ...
- 【一】Jmeter接口自动化测试系列之参数化方法
Jmeter作为虽然作为一款和LoadRunner相媲美的性能测试工具,但参数化功能实在不咋地,这里我大概总结了一下Jmeter的参数化方法! 至于参数化的用途,我这里就不多说了,做测试的都明白吧!本 ...
- JUC源码分析-集合篇(三)ConcurrentLinkedQueue
JUC源码分析-集合篇(三)ConcurrentLinkedQueue 在并发编程中,有时候需要使用线程安全的队列.如果要实现一个线程安全的队列有两种方式:一种是使用阻塞算法,另一种是使用非阻塞算法. ...