FZU - 1688 Binary land

Accept: 72 Submit: 171
Time Limit: 1000 mSec Memory Limit : 32768 KB
Problem Description
Daxia liked a game named “binary land” (双企鹅,一款家机游戏) when he was a child. Now, we will solve the problem about this game.You are in control of two penguins – Gurin (blue) and Malon (pink). Each level is divided more or less in half, with Gurin on the right and Malon on the left. They move the same way in vertical direction, but they move in a mirror image in horizontal direction. That is if you press right, Gurin moves right but Malon moves left, and if you press left, Gurin moves left but Malon moves right. You can press up, down, left and right. If an operation leads the penguin to the wall, the penguin will stay in the original place. Every operation is counted one step.
These two penguins are in love and so your task is to open the cage with the heart on the top of the screen. This cage can be opened only if the penguins are on both sides of it as the following picture (either Gurin on the right or on the left is OK). Now ask you to compute the least steps to achieve it.
Input
- "." is used for road.
- "#" is used for wall.
- "G" is used for Gurin (only one, and in the tenth line and ninth column).
- "M" is used for Malon (only one, and in the tenth line and seventh column).
- "C" is used for cage with the heart (only one, and in the first line and eighth column).
Output
Sample Input
- .......C.......
- .......#.......
- .......#.......
- .......#.......
- .......#.......
- .......#.......
- .......#.......
- .......#.......
- .......#.......
- ......M#G......
- .......C.......
- .###.###.###.##
- ##.#.#.###.#.#.
- .......#.......
- .#####.#.#####.
- .......#.......
- ##.#.#.#.#.#.##
- .......#.......
- .#############.
- ......M#G......
- ......#C.......
- .......#.......
- .......#.......
- .......#.......
- .......#.......
- .......#.......
- .......#.......
- .......#.......
- .......#.......
- ......M#G......
Sample Output
- #include<iostream>
- #include<cstdio>
- #include<cmath>
- #include<cstdlib>
- #include<algorithm>
- #include<cstring>
- #include <queue>
- using namespace std;
- typedef long long LL;
- const int maxn = 1e4+;
- const int mod = +;
- typedef pair<int,int> pii;
- #define X first
- #define Y second
- #define pb push_back
- #define mp make_pair
- #define ms(a,b) memset(a,b,sizeof(a))
- int d[][][][];
- char g[][];
- pii C,G,M;
- queue<pair<pii,pii> > q;
- int dx[]={,,-,};
- int dy[]={,,,-};
- const int inf = 0x3f3f3f3f;
- int main(){
- //cout<<inf;
- int cas=;
- while(~scanf("%s",g[])){
- for(int i=;i<;i++) scanf("%s",g[i]);
- for(int i=;i<;i++){
- for(int j=;j<;j++){
- if(g[i][j]=='C') C=mp(i,j);
- else if(g[i][j]=='G') G=mp(i,j);
- else if(g[i][j]=='M') M=mp(i,j);
- }
- }
- // for(int i=0;i<10;i++) puts(g[i]);
- ms(d,inf);
- d[G.X][G.Y][M.X][M.Y]=;
- q.push(mp(G,M));
- while(!q.empty()){
- pii tg=q.front().X;
- pii tm=q.front().Y;
- q.pop();
- for(int i=;i<;i++){
- pii a=tg,b=tm;
- a.X+=dx[i]; a.Y+=dy[i];
- b.X+=dx[i]; b.Y-=dy[i];
- if(a.X<||a.X>||a.Y<||a.Y>) a=tg;
- if(b.X<||b.X>||b.Y<||b.Y>) b=tm;
- if(g[a.X][a.Y]=='#') a=tg;
- if(g[b.X][b.Y]=='#') b=tm;
- if(d[a.X][a.Y][b.X][b.Y]!=inf) continue;
- d[a.X][a.Y][b.X][b.Y]= d[tg.X][tg.Y][tm.X][tm.Y]+;
- q.push(mp(a,b));
- }
- }
- // int ans=min(d[C.X][C.Y+1][C.X][C.Y-1],d[C.X][C.Y-1][C.X][C.Y+1]);
- int ans=d[C.X][C.Y+][C.X][C.Y-];
- printf("Case %d: ",cas++);
- if(ans==inf){
- puts("They can't break open the cage!");
- }else cout<<ans<<endl;
- }
- return ;
- }
FZU - 1688 Binary land的更多相关文章
- Luogu3855 [TJOI2008]Binary Land (BFS)
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> ...
- 畅通工程再续(MST)
畅通工程再续 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Statu ...
- FC红白机游戏列表(维基百科)
1055个fc游戏列表 日文名 中文译名 英文版名 发行日期 发行商 ドンキーコング 大金刚 Donkey Kong 1983年7月15日 任天堂 ドンキーコングJR. 大金刚Jr. Donkey K ...
- Codechef May Challenge 2020 Division 1 记录
目录 Triple Sort Sorting Vases Buying a New String Chef and Bitwise Product Binary Land Not a Real Wor ...
- hdu----(5050)Divided Land(二进制求最大公约数)
Divided Land Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Tota ...
- HDU 5050 Divided Land(进制转换)
题意 给你两个二进制数m,n 求他们的最大公约数 用二进制表示 0<m,n<2^1000 先把二进制转换为十进制 求出最大公约数 再把结果转换为二进制 数比較大要用到大数 ...
- [数据结构]——二叉树(Binary Tree)、二叉搜索树(Binary Search Tree)及其衍生算法
二叉树(Binary Tree)是最简单的树形数据结构,然而却十分精妙.其衍生出各种算法,以致于占据了数据结构的半壁江山.STL中大名顶顶的关联容器--集合(set).映射(map)便是使用二叉树实现 ...
- ILJMALL project过程中遇到Fragment嵌套问题:IllegalArgumentException: Binary XML file line #23: Duplicate id
出现场景:当点击"分类"再返回"首页"时,发生error退出 BUG描述:Caused by: java.lang.IllegalArgumentExcep ...
- Leetcode 笔记 110 - Balanced Binary Tree
题目链接:Balanced Binary Tree | LeetCode OJ Given a binary tree, determine if it is height-balanced. For ...
随机推荐
- PAT 1003 我要通过!
https://pintia.cn/problem-sets/994805260223102976/problems/994805323154440192 “答案正确”是自动判题系统给出的最令人欢喜的 ...
- Spring Cloud 路由网关服务端
修改application.properties配置文件:服务端口号.本机名称: 启动注册中心:java -jar uap-register-server-1.0.jar --spring.confi ...
- Hacked VisualSVN Server by PHP to allow user change password
index.php <?php$username = $_SERVER["PHP_AUTH_USER"]; //经过 AuthType Basic 认证的用户名$authed ...
- C++拷贝控制
一.拷贝控制操作 当定义一个类时,显示或隐式地指定了此类型的对象在拷贝.赋值和销毁时所执行的操作,通过三个特殊的成员函数来控制这些操作,分别是拷贝构造函数,赋值运算符和析构函数.拷贝构造函数定义了 ...
- [读书笔记]Linux命令行与shell编程读书笔记04 安装软件,编辑器注意事项
1. debian以及redhat两种主流的linux发行版用的包管理工具 debian的包管理工具是 dpkg 再现安装的是 apt apt的工具主要有 apt-get apt-cache apti ...
- Excel 使用AutoFill提示“类Range的AutoFill方法无效”
今天遇到一个神奇的问题,之前一直使用很好的代码突然报错:“类Range的AutoFill方法无效”,在网上搜索了一番,感觉没有一个与我遇到的情况相同的.debug,查看一下代码,发现程序里,AutoF ...
- 《ERP系统》客户信用及风控代码
1.风控核心代码: <?php namespace core\models; class SalesCustomersFacade extends \common\models\Base{ /* ...
- POI插入图片至Excel使用固定的长宽
使用POI在Excel里插入图片,如何使插入的图片使用固定的大小?先介绍原有的两种方式: 一种是指定开始和结尾单元格,然后从头画到尾,相当于平铺 还有一种就是仅指定开始的单元格,图片的大小跟这个单元格 ...
- IDEA常见设置
对于eclipse实在忍无可忍,各种功能各种bug..换回IDEA IDEA常见问题(其实不是问题,代码规范而已) 1.解决无限 This file is indented with tabs ins ...
- 【LOJ#6041】事情的相似度(后缀自动机)
[LOJ#6041]事情的相似度(后缀自动机) 题面 LOJ 题解 \(\mbox{YCB}\)搬了这道题目...\(\mbox{QwQ}\) 还是用到\(lcp\)就是\(parent\)树上的\( ...