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博士计算他们的年龄, ...
随机推荐
- ArrayLIst练习之获取满足要求的元素
ArrayListTest2.java import java.util.ArrayList; /* * 1.给定一个字符串数组;{"张三丰","宋远桥",&q ...
- 解决Can’t finish GitHub sharing process Successfully created project ‘GitHubDemo’ on GitHub
Can't finish GitHub sharing process Successfully created project 'KeyWordsFrameWork' on GitHu ...
- Leetcode 239.滑动窗口最大值
滑动窗口最大值 给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧.你只可以看到在滑动窗口 k 内的数字.滑动窗口每次只向右移动一位. 返回滑动窗口最大值. 示例: ...
- 洛谷P2527 [SHOI2001]Panda的烦恼
题目描述 panda是个数学怪人,他非常喜欢研究跟别人相反的事情.最近他正在研究筛法,众所周知,对一个范围内的整数,经过筛法处理以后,剩下的全部都是质数,不过panda对这些不感兴趣,他只对被筛掉 ...
- 【cmd】cmd常用命令
dir 是英文单词directory(目录)的缩写,主要用来显示一个目录下的文件和子目录 md 是英文make directory(创建目录)的缩写 cd 是英文change directory( ...
- UVA12345 (带修改的莫队)
UVA12345 Dynamic len Problem : 给一个序列,每次询问一个区间里面的数字种类数量,或者修改某一个位置的值. Solution : 第一关键字分块排序左端点,第二关键字分块排 ...
- BNUOJ Eeny Meeny Moo
Eeny Meeny Moo Time Limit: 1000ms Memory Limit: 65535KB 大家都有这种经验,当太多的人同时使用互联网的时候 ...
- [Bzoj3631][JLOI2014]松鼠的新家 (树上前缀和)
3631: [JLOI2014]松鼠的新家 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2350 Solved: 1212[Submit][Sta ...
- final finally finalize 区别及用法
final 1,final修饰的class,代表不可以继承扩展. 2.final的方法也是不可以重写的. 3.final修饰的变量是不可以修改的.这里所谓的不可修改对于基本类型来来,的确是不可以修改. ...
- (转)Redis
Rdis和JQuery一样是纯粹为应用而产生的,这里记录的是在CentOS 5.7上学习入门文章: 1.Redis简介 Redis是 一个key-value存储系统.和Memcached类似,但是解决 ...