Xuzhou Winter Camp 1C(模拟)
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
int x[10],y[10];
int dangerous[17][17];
char z[10];
int vis[17][17];
char s[100][100];
int main(){
int n;
while(~scanf("%d",&n)){
memset(x,0,sizeof(x));
memset(y,0,sizeof(y));
memset(z,0,sizeof(z));
memset(vis,0,sizeof(vis));
memset(s,0,sizeof(s));
memset(dangerous,0,sizeof(dangerous));
int a,b;
scanf("%d%d",&a,&b);
if(n==0)
break;
for(int i=1;i<=n;i++){
cin>>z[i]>>x[i]>>y[i];//getchar();scanf("%c%d%d",&z[i],&x[i],&y[i]);这种输入过不了
vis[x[i]][y[i]]=1;
}
int flag=0;
for(int i=1;i<=n;i++){
flag=0;
if(z[i]=='G'){
for(int j=x[i]-1;j>=1;j--){
if(!vis[j][y[i]])
dangerous[j][y[i]]=1;
else{
dangerous[j][y[i]]=1;
break;
}
}
if(b==y[i]){
flag=0;
for(int ii=a+1;ii<x[i];ii++){
if(vis[ii][b]==1)
flag=1;
}
if(!flag){
printf("NO\n");
flag=10;
break;
}
}
}
else if(z[i]=='R'){
int ii=0;
for(ii=x[i]-1;ii>=1;ii--){
if(!vis[ii][y[i]])
dangerous[ii][y[i]]=1;
else{
dangerous[ii][y[i]]=1;
break;
}
}
//dangerous[ii][y[i]]=1;
for(ii=x[i]+1;ii<=10;ii++){
if(!vis[ii][y[i]])
dangerous[ii][y[i]]=1;
else{
dangerous[ii][y[i]]=1;
break;
}
}
//dangerous[ii][y[i]]=1;
for(ii=y[i]-1;ii>=1;ii--){
if(vis[x[i]][ii]==0)
dangerous[x[i]][ii]=1;
else{
dangerous[x[i]][ii]=1;
break;
}
}
//dangerous[x[i]][ii]=1;
for(ii=y[i]+1;ii<=9;ii++){
if(vis[x[i]][ii]==0)
dangerous[x[i]][ii]=1;
else{
dangerous[x[i]][ii]=1;
break;
}
}
//dangerous[x[i]][ii]=1;
}
else if(z[i]=='C'){
flag=0;
for(int ii=x[i]-1;ii>=2;ii--){
if(vis[ii][y[i]]==1){
flag=ii;
break;
}
}
if(flag){
for(int ii=flag-1;ii>=1;ii--){
if(vis[ii][y[i]]==0)
dangerous[ii][y[i]]=1;
else{
dangerous[ii][y[i]]=1;
break;
}
}
}
flag=0;
for(int ii=x[i]+1;ii<=9;ii++){
if(vis[ii][y[i]]==1){
flag=ii;
break;
}
}
if(flag){
for(int ii=flag+1;ii<=10;ii++){
if(vis[ii][y[i]]==0)
dangerous[ii][y[i]]=1;
else{
dangerous[ii][y[i]]=1;
break;
}
}
}
flag=0;
for(int ii=y[i]-1;ii>=2;ii--){
if(vis[x[i]][ii]==1){
flag=ii;
break;
}
}
if(flag){
for(int ii=flag-1;ii>=1;ii--){
if(vis[x[i]][ii]==0)
dangerous[x[i]][ii]=1;
else{
dangerous[x[i]][ii]=1;
break;
}
}
}
flag=0;
for(int ii=y[i]+1;ii<=8;ii++){
if(vis[x[i]][ii]==1){
flag=ii;
break;
}
}
if(flag){
for(int ii=flag+1;ii<=9;ii++){
if(vis[x[i]][ii]==0)
dangerous[x[i]][ii]=1;
else{
dangerous[x[i]][ii]=1;
break;
}
}
}
}
else if(z[i]=='H'){
if(vis[x[i]-1][y[i]]==0){
//if(!vis[x[i]-2][y[i]-1])
dangerous[x[i]-2][y[i]-1]=1;
//if(!vis[x[i]-2][y[i]+1])
dangerous[x[i]-2][y[i]+1]=1;
}
if(vis[x[i]+1][y[i]]==0){
//if(!vis[x[i]+2][y[i]-1])
dangerous[x[i]+2][y[i]-1]=1;
//if(!vis[x[i]+2][y[i]+1])
dangerous[x[i]+2][y[i]+1]=1;
}
if(vis[x[i]][y[i]-1]==0){
//if(!vis[x[i]-1][y[i]-2])
dangerous[x[i]-1][y[i]-2]=1;
//if(!vis[x[i]+1][y[i]-2])
dangerous[x[i]+1][y[i]-2]=1;
}
if(vis[x[i]][y[i]+1]==0){
//if(!vis[x[i]-1][y[i]+2])
dangerous[x[i]-1][y[i]+2]=1;
//if(!vis[x[i]+1][y[i]+2])
dangerous[x[i]+1][y[i]+2]=1;
}
}
}
if(flag==10)
continue;
flag=0;
if(a-1>=1)
if(!dangerous[a-1][b])
flag=1;
if(a+1<=3)
if(!dangerous[a+1][b])
flag=1;
if(b-1>=4)
if(!dangerous[a][b-1])
flag=1;
if(b+1<=6)
if(!dangerous[a][b+1])
flag=1;
if(flag)
printf("NO\n");
else
printf("YES\n");
}
return 0;
}
Xuzhou Winter Camp 1C(模拟)的更多相关文章
- 2019 wannafly winter camp day 3
2019 wannafly winter camp day 3 J 操作S等价于将S串取反,然后依次遍历取反后的串,每次加入新字符a,当前的串是T,那么这次操作之后的串就是TaT.这是第一次转化. 涉 ...
- 2019 wannafly winter camp
2019 wannafly winter camp Name Rank Solved A B C D E F G H I J K day1 9 5/11 O O O O O day2 5 3/11 O ...
- 线段树优化建图(cf787d, 2019Wannafly Winter Camp Day7 Div1 E)
线段树优化建图,用于区间到区间建边时降低空间复杂度 建立两颗线段树,一颗in, 代表进入这个区间,一颗out,代表从这个区间出去 in树从父亲向儿子建边,代表宏观进入整个区间,不向下寻找 out树从儿 ...
- 2020 CCPC-Wannafly Winter Camp Day2
2020 CCPC-Wannafly Winter Camp Day2 A 托米的字符串 虽然每个子串出现的概率是相同的,但是同一长度的子串个数是不同的,所以要分别处理.计算出某一长度的情况下,元音字 ...
- 2020 CCPC Wannafly Winter Camp Day1 C. 染色图
2020 CCPC Wannafly Winter Camp Day1 C. 染色图 定义一张无向图 G=⟨V,E⟩ 是 k 可染色的当且仅当存在函数 f:V↦{1,2,⋯,k} 满足对于 G 中的任 ...
- CCPC-Wannafly Winter Camp Day5 (Div2, onsite) Sorting(线段树)
题目链接 题意 对序列进行三种操作: 1.区间求和. 2.将区间小于等于$x$的数不改变相对顺序的前提下放到$x$左边,用同样规则将比$x$大的放到右边. 3.将区间大于$x$的数不改变相对顺序的前提 ...
- 秦皇岛winter camp 总结
冬令营在秦皇岛自闭了七天,很多题目看了都没有思路,或者是不知道怎么敲代码.我发现图论的题,自己连怎么建树都给忘了,想了半天.还有很多自己从未接触过的算法.在说说课堂上课的情况,大部分时间都是全程懵逼的 ...
- CCPC-Wannafly Winter Camp Day8 (Div2, onsite)
咕咕咕. camp补题. 传送门:https://www.zhixincode.com/contest/29/problems A.Aqours 题意:有一棵有根树,根节点为1,给出每个结点的父 ...
- CCPC-Wannafly Winter Camp Day7 D---二次函数【数论】【构造】
题意: 有三个二次函数,分别是$x^2 + a_1x + b_1$, $x^2 + a_2x + b_2$, $x^2 + a_3x + b_3$ 现在要找三个整数$x_1, x_2, x_3$, 使 ...
随机推荐
- cocos2d-x 3.9 android studio项目命令行打包
进入创建的项目的 proj.android-studio目录 cocos run/compile -p android --android-studio 这样就可以打包了
- php设计模式课程---1、什么是设计模式
php设计模式课程---1.什么是设计模式 一.总结 一句话总结:经典场景的经典解决方法. 经典场景的经典解决方法 1.设计模式使用的通俗场景有哪些? 比如:拍电影时,常用设计模式 感情狗血剧:误会模 ...
- 机器学习(十五)— Apriori算法、FP Growth算法
1.Apriori算法 Apriori算法是常用的用于挖掘出数据关联规则的算法,它用来找出数据值中频繁出现的数据集合,找出这些集合的模式有助于我们做一些决策. Apriori算法采用了迭代的方法,先搜 ...
- phpStudy如何修改端口及WWW目录
phpStudy如何修改端口及WWW目录 phpStudy如何修改端口 请使用『其他选项菜单』-『phpStudy设置』-『端口常规设置』.
- tomcat报错:Wrapper cannot find servlet class ...
tomcat发布工程时,在浏览器输入正确的地址,遇到如下问题: HTTP Status 500 - javax.servlet.ServletException: Wrapper cannot fin ...
- codeforces 589G G. Hiring(树状数组+二分)
题目链接: G. Hiring time limit per test 4 seconds memory limit per test 512 megabytes input standard inp ...
- Java 关于创建String对象过程的内存分配
一.String s = "abc" 和 String s = new String("abc") 的区别 1.String s = "abc&qu ...
- [原]NYOJ-组合数-32
大学生程序代写 http://acm.nyist.net/JudgeOnline/problem.php?pid=32 /*组合数 时间限制:3000 ms | 内存限制:65535 KB 难度: ...
- freeMarker(四)——模板开发指南之模板
学习笔记,选自freeMarker中文文档,译自 Email: ddekany at users.sourceforge.net 模板开发指南之模板 1. 总体结构 实际上用程序语言编写的程序就是模板 ...
- Xposed模块开发学习记录
Xposed模块相关API可以参考在线文档: https://api.xposed.info/reference/packages.html 入门教程可以参考: https://github. ...