Problem K. KMC Attacks

题目连接:

http://codeforces.com/gym/100714

Description

Warrant VI is a remote planet located in the Koprulu Sector. Warrant VI features a strange huge field,

which was discovered by the Kel-Morian Combine (KMC). The KMC is involved into a conflict with the

Scientific Community, which wishes to study the field, but the KMC intends to hold on to the significant

mineral wealth located there.

The field is represented by a rectangle of size N × M cells. All coordinates are positive integers. The left

upper corner is located at (1, 1) and the right bottom corner is at (N, M). The Scientific Community

have sent a T-280 unit to the field. You are one of the KMC members, your task is to find the unit

and destroy it. You have an orbital base equipped with a scanner at your disposal. You can examine

any single cell and if scan reveals the unit, a detachment is sent to destroy it. After every scan the unit

changes its location (i, j) by moving into one of four (three if the unit is in a border cell or two if it is in

a corner cell) adjacent cells. The unit has a tracking device. For every unit’s move you receive a signal:

‘U’ (for up, i decreases by one), ‘D’ (for down, i increases by one), ‘L’ (for left, j decreases by one), or ‘R’

(for right, j increases by one).

Time is running out so you are allowed to make not greater than 50000 scans to reveal the T-280 location.

Although the initial position of the unit is unknown, each its move provides you with information. You

are forbidden to scan cells, which definitely cannot hold the unit according to the gathered information.

Input

This is an interactive problem. Your program should first read a line with two integers N and M from

the standard input (where N is the height and M is the width of the field, 1 ≤ N, M ≤ 200). Then, for

every scan your program should print a corresponding request to the standard output (see below) and

read a reply from the standard input. Each reply is placed in a separate line and is either ’U’, ’D’, ’L’, ’R’

(meaning that you have missed and the unit has moved in the given direction) or ’DETECTED’ (meaning

that your last scan has revealed the unit’s position).

Output

For each scan print its coordinates i, j in a separate line (where i is the row number and j is the column

number). You have to flush the standard output after printing each request.

Sample Input

1 2

L

DETECTED

Sample Output

1 1

1 1

Hint

题意

交互题,在nm的矩阵,然后你需要找到一个东西。

每次你可以输入一个i,j位置,然后这个东西如果被抓到了,会返回delete,否则就会输出这个东西往哪儿走了。

题解:

暴力枚举这个东西的起点,然后判断现在的路径在哪儿,然后这样一直判断就好了。

注意,中途出界的点也得删去。

代码

#include <bits/stdc++.h>
#define rep(a,b,c) for(int (a)=(b);(a)<=(c);++(a))
#define drep(a,b,c) for(int (a)=(b);(a)>=(c);--(a))
#define pb push_back
#define mp make_pair
#define sf scanf
#define pf printf
#define two(x) (1<<(x))
#define clr(x,y) memset((x),(y),sizeof((x)))
#define dbg(x) cout << #x << "=" << x << endl;
const int mod = 1e9 + 7;
int mul(int x,int y){return 1LL*x*y%mod;}
int qpow(int x , int y){int res=1;while(y){if(y&1) res=mul(res,x) ; y>>=1 ; x=mul(x,x);} return res;}
inline int read(){int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;}
using namespace std;
list < pair < int , int > > s;
char buffer[2048];
list < int > test;
int dx , dy , upx , downx , ly , ry , N , M; bool judge( pair < int , int > p ){
int x = p.first , y = p.second;
if( x - upx <= 0 ) return false;
if( x + downx > N ) return false;
if( y + ry > M ) return false;
if( y - ly <= 0 ) return false;
return true;
} int main(int argc,char *argv[]){
scanf("%d%d",&N,&M);
for(int i = 1 ; i <= N ; ++ i) for(int j = 1 ; j <= M ; ++ j) s.push_back( mp(i , j) );
int ok = 0;
for(int i = 1 ; i <= 50000 ; ++ i){
while( !judge( s.front() ) ) s.pop_front();
printf("%d %d\n" , s.front().first + dx , s.front().second + dy );
s.pop_front();
fflush( stdout );
sf("%s",buffer);
int len = strlen(buffer);
if( len > 1 ){
ok = 1;
break;
}else{
char c = buffer[0];
if( c == 'U' ){
-- dx;
upx = max( upx , - dx );
}else if( c == 'D' ){
++ dx;
downx = max( downx , dx );
}else if( c == 'L' ){
-- dy;
ly = max( ly , -dy );
}else{
++ dy;
ry = max( ry , dy );
}
}
}
assert( ok == 1 );
return 0;
}

2010-2011 ACM-ICPC, NEERC, Moscow Subregional Contest Problem K. KMC Attacks 交互题 暴力的更多相关文章

  1. 2010-2011 ACM-ICPC, NEERC, Moscow Subregional Contest Problem I. Interest Targeting 模拟题

    Problem I. Interest Targeting 题目连接: http://codeforces.com/gym/100714 Description A unique display ad ...

  2. 2013-2014 ACM-ICPC, NEERC, Southern Subregional Contest Problem D. Grumpy Cat 交互题

    Problem D. Grumpy Cat 题目连接: http://www.codeforces.com/gym/100253 Description This problem is a littl ...

  3. 2010-2011 ACM-ICPC, NEERC, Moscow Subregional Contest Problem D. Distance 迪杰斯特拉

    Problem D. Distance 题目连接: http://codeforces.com/gym/100714 Description In a large city a cellular ne ...

  4. 2010-2011 ACM-ICPC, NEERC, Moscow Subregional Contest Problem C. Contest 水题

    Problem C. Contest 题目连接: http://codeforces.com/gym/100714 Description The second round of the annual ...

  5. 2016-2017 ACM-ICPC, NEERC, Moscow Subregional Contest Problem L. Lazy Coordinator

    题目来源:http://codeforces.com/group/aUVPeyEnI2/contest/229511 时间限制:1s 空间限制:512MB 题目大意: 给定一个n 随后跟着2n行输入 ...

  6. 2010-2011 ACM-ICPC, NEERC, Moscow Subregional Contest Problem J. Joke 水题

    Problem J. Joke 题目连接: http://codeforces.com/gym/100714 Description The problem is to cut the largest ...

  7. 2010-2011 ACM-ICPC, NEERC, Moscow Subregional Contest Problem H. Hometask 水题

    Problem H. Hometask 题目连接: http://codeforces.com/gym/100714 Description Kolya is still trying to pass ...

  8. 2010-2011 ACM-ICPC, NEERC, Moscow Subregional Contest Problem F. Finance 模拟题

    Problem F. Finance 题目连接: http://codeforces.com/gym/100714 Description The Big Boss Company (BBC) pri ...

  9. 2010-2011 ACM-ICPC, NEERC, Moscow Subregional Contest Problem A. Alien Visit 计算几何

    Problem A. Alien Visit 题目连接: http://codeforces.com/gym/100714 Description Witness: "First, I sa ...

随机推荐

  1. [C]语法, 知识点总结(一. 进制, 格式化输入/出, 指针)

    进制 概念: n进制, 最大的数是n-1, 逢n进1位. 数据类型 概念: 其实就是占的位数不同, 转换到计算机当中都是0和1. 常用: 类型名 占字节数 描述 char 1字节=8个二进制位 字符类 ...

  2. MongoDB-3.4搭建副本集

    搭建副本集 1:首先创建3台虚拟机作为配置环境 IP1:192.168.101.175 IP2:192.168.101.176 IP3:192.168.101.177 2.下载MongoDB 3.4版 ...

  3. BAT及各大互联网公司2014前端笔试面试题--Html,Css篇(昨天有个群友表示写的简单了点,然后我无情的把他的抄了一遍)

    某个群友 http://www.cnblogs.com/coco1s/   很多面试题是我自己面试BAT亲身经历碰到的.整理分享出来希望更多的前端er共同进步吧,不仅适用于求职者,对于巩固复习前端基础 ...

  4. html5 canvas画布上合成

    source-over 默认.在目标图像上显示源图像. source-atop 在目标图像顶部显示源图像.源图像位于目标图像之外的部分是不可见的. source-in 在目标图像中显示源图像.只有目标 ...

  5. CSS-3 Transition 的使用

    css的transition允许css的属性值在一定的时间区间内平滑地过渡.这种效果可以在鼠标单击.获得焦点.被点击或对元素任何改变中触发,并圆滑地以动画效果改变CSS的属性值." tran ...

  6. python字典转datafarm,pandas

    # coding:utf-8 import json import pandas as pd with open("./article_file/all_article.json" ...

  7. Redis的五大数据类型

    1.String(字符串) String是Redis最基本的类型,一个Key对应一个Value. String类型是二进制安全的,意思是Redis的String可以包含任何数据,比如jpg图片或者序列 ...

  8. 【技术知识】恶意PDF文件分析-PDFdump的问题

    1.提醒 百度分析恶意PDF文件,很多都是推荐PDFdump.在某次沙箱产品分析出疑似高级威胁的PDF样本后,我使用PDFdump查看ShellCode的加密数据,分析后并没有找到相关的ShellCo ...

  9. python3解析库pyquery

    pyquery是一个类似jquery的python库,它实现能够在xml文档中进行jQuery查询,pyquery使用lxml解析器进行快速在xml和html文档上操作,它提供了和jQuery类似的语 ...

  10. mysqldump只导出表结构或只导出数据的实现方法【转】

    mysql mysqldump 只导出表结构 不导出数据 mysqldump --opt -d 数据库名 -u root -p > xxx.sql 备份数据库 #mysqldump 数据库名 & ...