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. Lessons Learned from Developing a Data Product

    Lessons Learned from Developing a Data Product For an assignment I was asked to develop a visual ‘da ...

  2. codeforces 235 div2 A. Vanya and Cards

    Vanya loves playing. He even has a special set of cards to play with. Each card has a single integer ...

  3. HTML5 CSS Reset

    最近在学习HTML和CSS,发现一个不错的模板,放于此处. /* html5doctor.com Reset Stylesheet v1.6.1 Last Updated: 2010-09-17 Au ...

  4. 如何教会老婆写 Python ?

    什么是code? code就就是一种语言,一种计算机能读懂的语言.计算机是一个傻逼,他理解不了默认两可的任何东西. 比如,你让你老公去买个西瓜,你老公会自己决定去哪里买,买几个,找个搞活动打折的买,总 ...

  5. 什么是BS,BS和CS的区别有哪些

    BS和CS的区别以及优缺点 C/S又称Client/Server或客户/服务器模式.服务器通常采用高性能的PC.工作站或小型机,并采用大型数据库系统,如Oracle.Sybase.Informix或 ...

  6. Dream------Hadoop--网络拓扑与Hadoop--摘抄

    两个节点在一个本地网络中被称为“彼此的近邻”是什么意思?在高容量数据处理中,限制因素是我们在节点间 传送数据的速率-----带宽很稀缺.这个想法便是将两个节点间的带宽作为距离的衡量标准.   衡量节点 ...

  7. gbk文件转为utf8文件

    convmv -f gbk -t utf- --notest -r ./

  8. fish(自动推荐命令;语法高亮等)

    Fish 是 Linux/Unix/Mac OS 的一个命令行 shell,有一些很好用的功能. 自动推荐 VGA 颜色 完美的脚本支持 基于网页的配置 帮助文档自动补全 语法高亮 以及更多 自动推荐 ...

  9. Linux umount的device is busy问题

    现象: [root@dbserver ~]# df -h文件系统 容量 已用 可用 已用%% 挂载点/dev/vda1 9.9G 3.9G 5.6G 41% /tmpfs 3.9G 100K 3.9G ...

  10. Win7下如何使用GCC编译器

    很多Linux的爱好者都很熟悉GCC编译器,但是对面初学者,如何去学习GCC使用GCC ,很多人都是直接在电脑上装一个虚拟机,这样不仅安装麻烦,而且占用了很多电脑资源,今天我来教大家如何在Win7使用 ...