P1518两只塔姆沃斯牛
学习笔记:
用二维数组标识状态来记录地图
使用^来判定相同相异
数组名做指针时不能反复调用(原因不明待解决)
AC代码:
不足:没利用状态专属值去判定死循环!!!!
#include<iostream>
#include<stdio.h>
using namespace std;
int map[12][12];
int f[3];
int c[3];
int main()
{
char t;
int i, j;
f[0] = 0; c[0] = 0;
for (i = 1; i < 11; ++i)
{
for (j = 1; j < 11; ++j)
{
cin >> t;
if (t == '.')
{
map[i][j] = 1;
}
else if (t == 'F')
{
map[i][j] = 1;
f[1] = i; f[2] = j;
}
else if (t == 'C')
{
map[i][j] = 1;
c[1] = i; c[2] = j;
}
}
}//将图录入map数组中
/*cout << f[1] << ":" << f[2] << "-" << f[0] << endl;
cout << c[1] << ":" << c[2] << "-" << c[0] << endl;
turn(f);
turn(c);
cout << f[1] << ":" << f[2] << "-" << f[0] << endl;
cout << c[1] << ":" << c[2] << "-" << c[0] << endl;
turn(f);
turn(c);
cout << f[1] << ":" << f[2] << "-" << f[0] << endl;
cout << c[1] << ":" << c[2] << "-" << c[0] << endl;
turn(f);
turn(c);
cout << f[1] << ":" << f[2] << "-" << f[0] << endl;
cout << c[1] << ":" << c[2] << "-" << c[0] << endl;*/
int flag = 0;
int time = 0;
while ((f[1] != c[1] || f[2] != c[2]) && time < 200000)
{
if (f[0] % 4 == 0)
{
int x, y;
x = f[1] - 1; y = f[2];
if (map[x][y] ^ 1)
{
f[0] = f[0] + 1;
}
else
{
f[1] = x; f[2] = y;
}
}
else if (f[0] % 4 == 1)
{
int x, y;
x = f[1]; y =f[2] + 1;
if (map[x][y] ^ 1)
{
f[0] = f[0] + 1;
}
else
{
f[1] = x; f[2] = y;
}
}
else if (f[0] % 4 == 2)
{
int x, y;
x = f[1] + 1; y = f[2];
if (map[x][y] ^ 1)
{
f[0] = f[0] + 1;
}
else
{
f[1] = x; f[2] = y;
}
}
else if (f[0] % 4 == 3)
{
int x, y;
x = f[1]; y = f[2] - 1;
if (map[x][y] ^ 1)
{
f[0] = f[0] + 1;
}
else
{
f[1] = x; f[2] = y;
}
}
//========================
if (c[0] % 4 == 0)
{
int x, y;
x = c[1] - 1; y = c[2];
if (map[x][y] ^ 1)
{
c[0] = c[0] + 1;
}
else
{
c[1] = x; c[2] = y;
}
}
else if (c[0] % 4 == 1)
{
int x, y;
x = c[1]; y = c[2] + 1;
if (map[x][y] ^ 1)
{
c[0] = c[0] + 1;
}
else
{
c[1] = x; c[2] = y;
}
}
else if (c[0] % 4 == 2)
{
int x, y;
x = c[1] + 1; y = c[2];
if (map[x][y] ^ 1)
{
c[0] = c[0] + 1;
}
else
{
c[1] = x; c[2] = y;
}
}
else if (c[0] % 4 == 3)
{
int x, y;
x = c[1]; y = c[2] - 1;
if (map[x][y] ^ 1)
{
c[0] = c[0] + 1;
}
else
{
c[1] = x; c[2] = y;
}
}
time += 1;
}
if (time == 200000)
{
cout << "0";
}
else { cout << time; }
return 0;
}
P1518两只塔姆沃斯牛相关推荐
- P1518 两只塔姆沃斯牛 The Tamworth Two(模拟)
P1518 两只塔姆沃斯牛 The Tamworth Two 219通过 418提交 题目提供者该用户不存在 标签 USACO 难度 普及+/提高 时空限制 1s / 128MB 2017/4/21 ...
- 洛谷 P1518 两只塔姆沃斯牛 The Tamworth Two
P1518 两只塔姆沃斯牛 The Tamworth Two 题目背景 题目描述 两只牛逃跑到了森林里.农夫John开始用他的专家技术追捕这两头牛.你的任务是模拟他们的行为(牛和John). 追击在1 ...
- P1518 两只塔姆沃斯牛 The Tamworth Two(简单的搜索题)
题目描述 两只牛逃跑到了森林里.农夫John开始用他的专家技术追捕这两头牛.你的任务是模拟他们的行为(牛和John). 追击在10x10的平面网格内进行.一个格子可以是: 一个障碍物, 两头牛(它们总 ...
- 洛谷——P1518 两只塔姆沃斯牛 The Tamworth Two
https://www.luogu.org/problem/show?pid=1518 题目背景 题目描述 两只牛逃跑到了森林里.农夫John开始用他的专家技术追捕这两头牛.你的任务是模拟他们的行为( ...
- 洛古P1518—两只塔姆沃斯牛
题目描述 两只牛逃跑到了森林里.Farmer John 开始用他的专家技术追捕这两头牛.你的任务是模拟他们的行为(牛和 John). 追击在 10×1010 \times 1010×10 的平面网格内 ...
- 洛谷P1518 两只塔姆沃斯牛
1.构建地图 (矩阵读入)矩阵边缘围上一圈障碍物: 2.模拟F和C的运动 先判断前方是否有障碍物 如果没有障碍物,前进一步 如果有障碍物,改变方向 向北:x-1,y: ...
- 洛谷P1518 [USACO2.4]两只塔姆沃斯牛 The Tamworth Two
两只塔姆沃斯牛 The Tamworth Two 一.题目信息 1.题目链接 2.题目详情 输入格式 输出格式 样例 #1 样例输入 #1 样例输出 #1 提示 二.题目详解 1.逻辑 2.代码 (1 ...
- 【菜鸟进阶之路】P1518 [USACO2.4]两只塔姆沃斯牛 The Tamworth Two - 洛谷
一.题目部分 选自洛谷: P1518 [USACO2.4]两只塔姆沃斯牛 The Tamworth Two 二.解题过程 思路 见"提交AC答案"部分给出的注释 提交AC答案 #i ...
- java:P1518 [USACO2.4]两只塔姆沃斯牛 The Tamworth Two
洛谷题目:P1518 [USACO2.4]两只塔姆沃斯牛 The Tamworth Two 题目如下: 思路: 简单的模拟,不过像这种上下左右的移动方式倒是可以留意下,我是用%的方式来改变的. 我的代 ...
最新文章
- phpstrpos不存在_PHP主页显示方法不存在。这是什么问题,大神帮我看看
- POJ 1850 Code(组合数学)
- Elasticsearch 索引数据多了怎么办,如何调优,部署?
- ceph auth get_CPB羽梦幻境体验展来了!快来GET限量产品!
- c++ msflexgrid 使用_丝杠支座组件C
- Windows平台上安装搭建iPhone/iPad的开发环境
- 史上最大,人工智能算法模型 GPT-3 问世,这意味着什么?
- Some thoughts on dfs
- ArcGIS Server服务介绍与服务在js中的使用
- python适合自学编程吗-没编程基础可以学python吗
- 2018CCPC网络赛
- MySql Odbc等驱动下载地址分享下
- 谈谈对三大框架的理解
- 华为eNSP-基本配置指令
- comsol与matlab联合,联合应用COMSOL和matlab.pdf
- 最强蜗牛服务器维护祷告什么时候领取都一样,最强蜗牛猴子祷告奖励什么时候领...
- 用诺模图可视化你的模型
- 计算机word表格计算教程F9,Word表格数据计算与域操作
- [附源码]计算机毕业设计Python+uniapp学生选课APP3cnsl(程序+lw+APP+远程部署)
- 光谱共焦传感器测量的特点