[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. ...
随机推荐
- RRT路径规划算法(matlab实现)
基于快速扩展随机树(RRT / rapidly exploring random tree)的路径规划算法,通过对状态空间中的采样点进行碰撞检测,避免了对空间的建模,能够有效地解决高维空间和复杂约束的 ...
- angulajs 详解 directive 中 的 scope 概念
Directive 是 angularjs 中最重要的概念,我的理解就是自定义html tag, 这个自定的tag 浏览器不会解析,会有angularjs 来动态解析. 比如在html 中添加 < ...
- SAS市场研究应用介绍:组合/联合分析
SAS市场研究应用介绍:组合/联合分析 一 SAS市场研究模块介绍 市场研究是指研究组织(企业)与客户.公众三者关系的规律的过程,是市场营销领域中的一个重要元素.它把消费者.客户.公众和营销者通过信息 ...
- 介绍Win7 win8 上Java环境的配置
① windows 上的 java 环境搭建:(同时适合xp,vasta,win7,win8,win8.1) ② linux 上的java环境搭建(同时适合linux,unix,mac): 本文主要适 ...
- Python移动自动化测试面试✍✍✍
Python移动自动化测试面试 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题,大家看的时候可以 ...
- SYSTEM_HANDLE_TABLE_ENTRY_INFO
typedef struct _SYSTEM_HANDLE_TABLE_ENTRY_INFO { USHORT UniqueProcessId; USHORT CreatorBackTraceInde ...
- 从零开始搭建系统2.4——Jenkins安装及配置
1.安装wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins.io/redhat-stable/jenkins.reporpm --impo ...
- 从零开始搭建系统2.5——Apollo安装及配置
参见https://github.com/ctripcorp/apollo/wiki/Quick-Start安装即可
- 最基础知识 sql之left join、right join、inner join的区别
sql之left join.right join.inner join的区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括 ...
- js怎样判断一个数是质数
1.首先了解什么是质数(即:只能被1和它本身整除的数叫质数)主要代码 /** *判断该数是否为素数 */ function isPrimeNum(num){ ; i < num/+; i++) ...