[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. ...
随机推荐
- elementUI拿到当前表格行的数据的另一种写法
背景: 这里是通过点击“修改”按钮后才拿到当前行的数据,不是点击当前行任意位置拿到数据,所以不能用 @row-click 方法 改用点击的时候直接拿到这个表里面的这一条数据 1.绑定事件 <te ...
- HTML标签类总结
1.a标签除了可以作为连接也可以发送邮箱,a标签里的文本颜色不能继承父级的. 2.有几个特殊的块级元素只能包含内嵌元素,不能再包含块级元素,这几个特殊的标签是:h1.h2.h3.h4.h5.h6.p. ...
- JZOI1134 迷宫(maze)
#include <bits/stdc++.h> #define ll long long #define INF 2147483647 #define mem_INF 213906214 ...
- (转)openfire插件开发(二) 基于web的插件开发
转:http://blog.csdn.net/lovexieyuan520/article/details/38935137 在前面的博客中,我介绍了openfire插件开发,在那篇博客中我详细的说明 ...
- CF D. Walking Between Houses (贪心)
题意: 现在有n个房子排成一列,编号为1~n,起初你在第1个房子里,现在你要进行k次移动,每次移动一都可以从一个房子i移动到另外一个其他的房子j里(i != j),移动的距离为|j - i|.问你进过 ...
- Jeecg集成Swagger-ui
<context:component-scan base-package="springfox"/> <bean class="org.jeecgfra ...
- 2019秋第一次Java学习总结
本周Java学习总结: 知识点总结: 1.Java中程序的执行步骤 使用Javac将一个.Java源文件编译成.class文件 使用Java可以执行一个*.class文件 2.&&与& ...
- 高并发下的缓存架构设计演进及redis常见的缓存应用异象解决方案
待总结 缓存穿透 缓存击穿 缓存雪崩等
- SYSTEM_HANDLE_TABLE_ENTRY_INFO
typedef struct _SYSTEM_HANDLE_TABLE_ENTRY_INFO { USHORT UniqueProcessId; USHORT CreatorBackTraceInde ...
- C语言指针函数和函数指针
#include <stdio.h> char *test(); void test1(); int main() { /********************************* ...