2017年西南民族大学程序设计竞赛-网络同步赛 A 星图【思维维护】
2017-12-30 17:41
281 查看
A 星图
题目描述
现在有一个N*M的矩形星图。其中包括恒星和黑洞。恒星可以向上、下、左、右发射光束,且允许光束从其中穿过;黑洞会吸收所有经过的光束。若一颗恒星向上、下、左、右发射光束,你能告诉我,该光束能否避免被黑洞吸收,进入星图之外的区域么?
输入描述:
单组输入。第一行三个正整数N,M,Q(1 <= N,M<= 1000,1 <= Q <= 1000000),分别表示矩阵的行列,以及询问的个数,询问之间相互独立。
然后一个N*M的矩阵,由’’和’#’构成,表示星图。’’表示恒星,’#’表示黑洞。
最后Q行,表示Q个询问,每行两个正整数x,y(1 <= x <= N, 1 <= y
<= M)表示发光恒星的位置(从上往下数第x行,从左往右数第y列,且保证该位置一定是恒星)和一个字符p(p∈{‘L’, ‘R’,
‘D’, ‘U’},’R’表示向右;’L’表示向左;’D’表示向下’;’U’表示向上)表示该恒星产生光束的方向。
输出描述:
一共Q行。对于每个询问,若该恒星发出的光束能够进入星图之外的区域则输出“YES”;否则输出“NO”。(不包含引号)
示例1
输入
4 5 5 **##* ***** *#*#* ##**# 2 3 D 2 3 U 1 5 R 4 4 U 3 1 U
输出
YESNO
YES
NO
YES
题意 : 已知*为恒星,#为黑洞,给你某个恒星的坐标,和发射方向,问你能否被黑洞吸收
分析: 我们可以维护每行列的最大小值,然后O(1)查询即可
参考代码
#include<bits/stdc++.h> using namespace std; char E[1010][1010]; int hang[1010][3]; int lie[1010][3]; int main(){ ios_base::sync_with_stdio(0); init(); int n,m,q; scanf("%d%d%d",&n,&m,&q); for(int i = 0;i < n;i++) scanf("%s",E[i]); for(int i = 0;i < n;i++) { int l = INF,r = -INF; for(int j = 0;j < m;j++) { if(E[i][j] == '#') { l = min(j,l); r = max(j,r); } } hang[i][0] = l; hang[i][1] = r; } for(int i = 0;i < m;i++) { int l = INF,r = -INF; for(int j = 0;j < n;j++) { if(E[j][i] == '#') { l = min(j,l); r = max(j,r); } } lie[i][0] = l; lie[i][1] = r; } while (q--) { int x,y; char c; scanf("%d %d %c",&x,&y,&c); x--;y--; bool flg = false; if(c == 'L') { if(hang[x][0] < y) { flg = true; } } if(c == 'R') { if(hang[x][1] > y) { flg = true; } } if(c == 'D') { if(lie[y][1] > x) { flg = true; } } if(c == 'U') { if(lie[y][0] < x) { flg = true; } } if(flg) printf("NO\n"); else printf("YES\n"); } return 0; }
如有错误或遗漏,请私聊下UP,ths
相关文章推荐
- 2017年西南民族大学程序设计竞赛-网络同步赛-C:装进肚子(思维)
- 2017年西南民族大学程序设计竞赛-网络同步赛
- 2017年西南民族大学程序设计竞赛-网络同步赛-(A~K)
- 2017年西南民族大学程序设计竞赛-网络同步赛
- 2017年西南民族大学程序设计竞赛-网络同步赛
- 2017年西南民族大学程序设计竞赛-网络同步赛
- 2017年西南民族大学程序设计竞赛-网络同步赛 C 装进肚子【贪心】
- 2017年西南民族大学程序设计竞赛-网络同步赛
- 2017年西南民族大学程序设计竞赛-网络同步赛 E 开心的涂刷【排列 + 快速幂】
- 2017年西南民族大学程序设计竞赛-网络同步赛(代码)
- 【2017年西南民族大学程序设计竞赛-网络同步赛】A C D E I J
- 2017年西南民族大学程序设计竞赛 A-星图
- 2017年西南民族大学程序设计竞赛
- 哈尔滨理工大学第七届程序设计竞赛决赛(网络赛-高年级组)-C:小明打联盟(DP+思维)
- 2017年浙江工业大学大学生程序设计迎新赛决赛—网络同步赛 G 取数游戏2【区间DP】
- 第十一届北京师范大学程序设计竞赛(网络同步赛)+Adidas and adivon
- 2017年中国大学生程序设计竞赛网络赛杭电OJ---1003 Friend-Graph
- 2017年浙江工业大学大学生程序设计迎新赛决赛—网络同步赛 D-序列【莫队算法】
- 2017年浙江工业大学大学生程序设计迎新赛决赛—网络同步赛 H 小周的曲射炮【公式推导||分类二分】
- 2017年浙江工业大学大学生程序设计迎新赛决赛—网络同步赛 D-序列【莫队算法】