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博士计算他们的年龄, ...
随机推荐
- 调试jz2440生成特定后缀的命令
生成dis命令: arm-linux-objdump -D u-boot> u-boot.dis 版权声明:本文为博主原创文章,未经博主允许不得转载.
- springmvc ajax传值详解
- xtu summer individual 3 C.Infinite Maze
B. Infinite Maze time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- zoj 1240
IBM Minus One Time Limit: 2 Seconds Memory Limit: 65536 KB You may have heard of the book '2001 ...
- [NOIP1998] 提高组 洛谷P1011 车站
题目描述 火车从始发站(称为第1站)开出,在始发站上车的人数为a,然后到达第2站,在第2站有人上.下车,但上.下车的人数相同,因此在第2站开出时(即在到达第3站之前)车上的人数保持为a人.从第3站起( ...
- 【BZOJ1008】越狱(排列组合计数,容斥原理)
题意: 思路: #include<cstdio> #include<cstdlib> #include<iostream> #include<algorith ...
- Codeforces917D. Stranger Trees
$n \leq 100$的完全图,对每个$0 \leq K \leq n-1$问生成树中与给定的一棵树有$K$条公共边的有多少个,答案$mod \ \ 1e9+7$. 对这种“在整体中求具有某些特性的 ...
- HDU 5883 欧拉路径异或值最大 水题
The Best Path Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Tot ...
- [bzoj4199][Noi2015]品酒大会_后缀自动机_后缀树_树形dp
品酒大会 bzoj-4199 Noi-2015 题目大意:给定一个字符串,如果其两个子串的前$r$个字符相等,那么称这两个子串的开头两个位置$r$相似.如果两个位置勾兑在一起那么美味度为两个位置的乘积 ...
- Python---django轻量级框架
Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. ...