判断网格图中某两点是否被割开,可以将割边视为边区域视为点,转化为可切割这两点的区域是否连通。于是每次判断使两个区域连通后是否会形成环(边界视为连通),若是则说明被两点被割开。并查集维护。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
int read()
{
int x=,f=;char c=getchar();
while (c<''||c>'') {if (c=='-') f=-;c=getchar();}
while (c>=''&&c<='') x=(x<<)+(x<<)+(c^),c=getchar();
return x*f;
}
char getc(){char c=getchar();while (c!='N'&&c!='E') c=getchar();return c;}
#define N 1510
int n,m,fa[N*N],last=;
int find(int x){return fa[x]==x?x:fa[x]=find(fa[x]);}
int trans(int x,int y)
{
if (x==||x==n||y==||y==n) return ;
return (x-)*(n-)+y;
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("bzoj4423.in","r",stdin);
freopen("bzoj4423.out","w",stdout);
const char LL[]="%I64d\n";
#else
const char LL[]="%lld\n";
#endif
n=read(),m=read();
for (int i=;i<=n*n;i++) fa[i]=i;
while (m--)
{
int x=read(),y=read();char c=getc();
if (last==) read(),read(),getc();
else x=read(),y=read(),c=getc();
int p=x-(c=='N'),q=y-(c=='E');
int u=find(trans(p,q)),v=find(trans(x,y));
last=find(u)==find(v);
fa[u]=v;
if (last==) printf("TAK\n");
else printf("NIE\n");
}
return ;
}

最新文章

  1. Java设计模式 之 代理模式
  2. structs环境搭建
  3. 学习使用Robot Framework自动化测试框架-web元素定位
  4. UVA 562 Dividing coins (01背包)
  5. Controlling Site Provisioning Process with a Custom Provider
  6. IE 6最小最大宽度与高度的写法
  7. eclipse频繁崩溃退出
  8. dotnet core cli 命令
  9. 20170505 PHP实践中知识点
  10. 什么是&lt;!DOCTYPE html&gt;
  11. VMware 下的CentOS6.7 虚拟机与Windows7通信
  12. JDBC事务控制
  13. 音乐app各部分笔记(二)
  14. 告诉你们!我是怎么与Linux系统接触的!
  15. 树之105 Construct Binary Tree from Preorder and Inorder Traversal
  16. Zookeeper权限acl,acl的构成 scheme与id
  17. Mybatis-Plus 实战完整学习笔记(十)------条件构造器核心用法大全(下)
  18. shapefile与字符集编码设置
  19. Chrome浏览器无法观看视频,一直提示“adobe flash player 已过期” ?
  20. ZooKeeper 典型应用场景

热门文章

  1. 转:Spring Boot应用中的异常处理
  2. 使用公共的存储过程实现repeater的分页
  3. springmvc的类型转换器converter
  4. python中的&quot;is&quot;与&quot;==&quot;比较
  5. redis之cluster(集群)
  6. 网站标题被篡改成北京赛车、PK10的解决处理办法
  7. Java+Selenium3方法篇24-单选和多选按钮操作
  8. linux中常用命令总结
  9. (数据科学学习手札35)tensorflow初体验
  10. Unity3d创建物体,寻找物体,加载物体,添加脚本