7-3 躲避怪物

Little Zhang生活在依山傍水的平原上,他的房子前面有一块 n×n(1≤n≤1000) 的空地.

有一天他回家时,发现空地上有 m(1≤m≤100000) 只怪物(一种遇到人会爆炸的怪物)。这种怪物有一种特性,就是它会沿着直线每秒前进一格,当多个不同方向的怪物撞在一起(到达同一个格子的时候)他们会选择性继承这一格其他怪物的方向,并在下一时刻转向继承的怪物之前所朝向的方向继续移动,每只怪物只能继承其他怪物的方向,每只怪物也只能在同一时刻被继承一次。例如,当一只向左的怪物1和向上的怪物2撞在一起时,向左的怪物1由于不能继承自己的运动方向(同一只)所以继承了怪物2的,下一时刻怪物1向上走,怪物2向左走。

为了不被怪物炸死,Little Zhang 打算等所有怪物走出这片空地的时候再 打开门。现在给你 m 只怪物的起始位置和方向,问至少需要多少秒,Little Zhang 才能打开门。

输入格式:

单组数据,第一行是被空格隔开的两个整数,分别代表 n,m(1≤n≤1000,1≤m≤100000)。

接下来 m 行,每行 3 个整数,被空格隔开,分别表示 x,y,p(1≤x,y≤n);

  • p=1,向上,即 (x,y) → (x−1,y);

  • p=2,向右,即 (x,y) → (x,y+1);

  • p=3,向下,即 (x,y) → (x+1,y);

  • p=4,向左,即 (x,y) → (x,y−1)。

输出格式:

输出一个整数表示需要等待的时间。

输入样例:

2 2
1 1 1
2 2 3

输出样例:

1

代码长度限制

16 KB

Java (javac)

时间限制

1000 ms

内存限制

64 MB

Python (python2)

时间限制

1000 ms

内存限制

64 MB

Python (python3)

时间限制

1000 ms

内存限制

64 MB

其他编译器

时间限制

500 ms

内存限制

64 MB

栈限制

8192 KB

#include<bits/stdc++.h>
using namespace std;
int main(){
	//不要管题目中的继承 
	int a,b;
	cin>>a>>b;
	int maxx=0;
	for(int i=0;i<b;i++){
		int x,y,z;
		cin>>x>>y>>z;
		if(z==1) maxx=max(maxx,x);//z=1时向上走你只要考虑怎么走出a*a的方针比如(1,1)
//		这个点2*2大小的方阵(向上走的情况)是不是只要向上走1不就走出方阵了其他几个方向也是这个道理画个图推一下就行 
		if(z==2) maxx=max(maxx,a-y+1);
		if(z==3) maxx=max(maxx,a-x+1);
		if(z==4) maxx=max(maxx,a-y-1); 
	}
	cout<<maxx<<endl;
	return 0;
}

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值