YTU 2438: 三人三鬼
2438: 三人三鬼
时间限制: 1 Sec 内存限制: 128 MB
提交: 35 解决: 9
题目描述
目标是将东岸的3人3鬼通过一只小船转移到西岸,希望以尽可能少的摆渡次数。
船的容量有限,一次最多只能坐2人(或2鬼或1人1鬼)。
无论是在河的东岸还是在河的西岸,一旦鬼数多于人数,则人被鬼扔到河中。
怎样渡河的大权掌握在人的手中。
只求一种渡河方案。依次输出东岸的状态。
输入
无输入
输出
依次输出东岸的状态
样例输入
NO
样例输出
x:(a,b)
....
迷失在幽谷中的鸟儿,独自飞翔在这偌大的天地间,却不知自己该飞往何方……
#include<iostream>
using namespace std;
bool AQ,CHF;
struct state
{
int r;
int g;
} s[15],d[7]= {{0,0},{0,-2},{-1,-1},{- 2,0},{0,1},{1,1},{1,0}};
void display(int p)
{
for(int i=1; i<=p; i++)
cout <<i<<":("<< s[i].r<<","<< s[i].g << ")"<< endl;
}
int main()
{
s[1].r=3;
s[1].g=3;
int u=3,v=3;
int a,mu,mv;
int flag1=0;
int flag2=0;
int k=0;
while(!(u==0 && v==0))
{
k++;
if (k%2 == 0)
a=4;
else
a=1;
for (int i=a; i<=a+2; i++)
{
mu = u + d[i].r;
mv = v + d[i].g;
if ( mu>3 || mv>3 || mu<0 || mv<0 ||(mu==3 && mv==3 ))continue;
AQ = ((mu==3) || (mu==0) ||(mu==1 && mv==1) ||(mu==2 && mv==2) );
CHF = (flag1) && (flag2);
if (mu==0 || (AQ&& (!CHF)) )
{
u = mu;
v = mv;
s[k+1].r=u;
s[k+1].g=v;
if(u==1&&v==1) flag1++;
if(u==2&&v==2) flag2++;
break;
}
}
}
display(k+1);
return 0;
}
#include<iostream>
using namespace std;
bool AQ,CHF;
struct state
{
int r;
int g;
} s[15],d[7]= {{0,0},{0,-2},{-1,-1},{- 2,0},{0,1},{1,1},{1,0}};
void display(int p)
{
for(int i=1; i<=p; i++)
cout <<i<<":("<< s[i].r<<","<< s[i].g << ")"<< endl;
}
int main()
{
s[1].r=3;
s[1].g=3;
int u=3,v=3;
int a,mu,mv;
int flag1=0;
int flag2=0;
int k=0;
while(!(u==0 && v==0))
{
k++;
if (k%2 == 0)
a=4;
else
a=1;
for (int i=a; i<=a+2; i++)
{
mu = u + d[i].r;
mv = v + d[i].g;
if ( mu>3 || mv>3 || mu<0 || mv<0 ||(mu==3 && mv==3 ))continue;
AQ = ((mu==3) || (mu==0) ||(mu==1 && mv==1) ||(mu==2 && mv==2) );
CHF = (flag1) && (flag2);
if (mu==0 || (AQ&& (!CHF)) )
{
u = mu;
v = mv;
s[k+1].r=u;
s[k+1].g=v;
if(u==1&&v==1) flag1++;
if(u==2&&v==2) flag2++;
break;
}
}
}
display(k+1);
return 0;
}
YTU 2438: 三人三鬼的更多相关文章
- 【编程题目】有 4 张红色的牌和 4 张蓝色的牌,主持人先拿任意两张,再分别在 A、B、C 三人额头上贴
第 22 题(推理):有 4 张红色的牌和 4 张蓝色的牌,主持人先拿任意两张,再分别在 A.B.C 三人额头上贴任意两张牌,A.B.C 三人都可以看见其余两人额头上的牌,看完后让他们猜自己额头上是什 ...
- linux下实现两人、三人无序对话功能
序:引子 对话功能实际上就是利用管道见得通信.最原始的是一方发另一方收,不能进项交互,发送方的代码如下: /*============================================ ...
- 两个乒乓球队进行比赛,各出三人。 甲队为a,b,c三人,乙队为x,y,z三人。 已抽签决定比赛名单。 有人向队员打听比赛的名单。 a说他不和x比,c说他不和x,z比, 请编程序找出三队赛手的名单。
题目:两个乒乓球队进行比赛,各出三人. 甲队为a,b,c三人,乙队为x,y,z三人. 已抽签决定比赛名单. 有人向队员打听比赛的名单. a说他不和x比,c说他不和x,z比, 请编程序找出三队赛手的名单 ...
- vivado三人表决仿真
概述 下面以三人表决电路的verilog仿真来了解一下vivado软件的使用. 编写设计文件 首先可以在开始的界面通过create new project来新建工程,也可以通过file-->pr ...
- #【Python】【demo实验23】【练习实例】【 三人比赛顺序问题 】
原题: 两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人.已抽签决定比赛名单.有人向队员打听比赛的名单.a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单. 我的 ...
- 代码实现:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。 已抽签决定比赛名单。有人向队员打听比赛的名单。 a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单
/*两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人. 已抽签决定比赛名单.有人向队员打听比赛的名单. a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单.*/ ...
- 20190728三人开黑517codingACM模拟赛
三人组队开黑ACM膜你赛 果然我最蔡 我就写了ACF所以就写这些吧awa Problem A 人话:给你一个w×h的矩形蛋糕,然后告诉你两个蜡烛的坐标,两个蜡烛都在网格点上且不在蛋糕边缘,问如何切一刀 ...
- Python基础-两个乒乓球队进行比赛,各出三人。
两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人.已抽签决定比赛名单.有人向队员打听比赛的名单.a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单. L1 = [ ...
- Java实现三人年龄
2 三人年龄 三个神秘蒙面人来访F博士. 博士询问他们年龄时,他们说:我们中年龄最小的不超过19岁.我们3人年龄总和为70岁.且我们三人年龄的乘积是所有可能情况中最大的. 请帮助F博士计算他们的年龄, ...
随机推荐
- Python中的*arg和**kwarg
一个简单的函数 首先我们可以定一个简单的函数, 函数内部只考虑required_arg这一个形参(位置参数) def exmaple(required_arg): print required_arg ...
- jquery怎么获得ul中li的个数
- PHP基础 变量
$a=123;$b="123";$c='456';$d=<<<a <div style=" qwerqwrqwt </div>a; / ...
- [Istio]流量管理API v1alpha3路由规则
Istio提供一个API进行流量管理,该API允许用户将请求路由到特定版本的服务,为弹性测试注入延迟和失败,添加断路器等,所有这些功能都不必更改应用程序本身的代码.Istio 1.0中引入新的流量管理 ...
- Java jsp页面中jstl标签详解
JSLT标签库,是日常开发经常使用的,也是众多标签中性能最好的.把常用的内容,放在这里备份一份,随用随查.尽量做到不用查,就可以随手就可以写出来.这算是Java程序员的基本功吧,一定要扎实. JSTL ...
- Memcached 管理与监控工具 MemAdmin
MemAdmin是一款可视化的Memcached管理与监控工具,基于 PHP5 & JQuery 开发,体积小,操作简单. 主要功能: 服务器参数监控:STATS.SETTINGS.ITEMS ...
- Codeforces Round #291 (Div. 2) B. Han Solo and Lazer Gun
因为是x,y均为整数因此对于同一直线的点,其最简分数x/y是相同的(y可以为0,这里不做除法)于是将这些点不断求最简分数用pair在set中去重即可. #include <cmath> # ...
- redis连接数据库进行操作
该项目需要的类目录 1.首先我们需要创建我们的实体类 2.放置我们的dao层,在里面写入方法 3.配置类Appconfig需要加入我们的JdbcTemplate方法,因为我们用的是spring,所以需 ...
- eclipse设置每次提交代码忽略target、.settings、.svn、.project文件
- 基于 HTML5 WebGL 的挖掘机 3D 可视化应用
前言 在工业互联网以及物联网的影响下,人们对于机械的管理,机械的可视化,机械的操作可视化提出了更高的要求.如何在一个系统中完整的显示机械的运行情况,机械的运行轨迹,或者机械的机械动作显得尤为的重要,因 ...