题解:

在圆上面的点能不能不交叉

和那一题差不多

http://www.cnblogs.com/xuanyiming/p/8110597.html

代码:

#include<bits/stdc++.h>
using namespace std;
const int N=;
int read()
{
int x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
int T,n,m,ind,top,cnt,scc,u[N],v[N];
int c[N],pos[N],last[N],dfn[N],low[N],q[N],bl[N],inq[N];
struct edge{int to,next;}e[N*];
void jb(int u,int v)
{
e[++cnt].to=v;
e[cnt].next=last[u];
last[u]=cnt;
}
void tarjan(int x)
{
inq[x]=;q[++top]=x;
low[x]=dfn[x]=++ind;
for (int i=last[x];i;i=e[i].next)
if (!dfn[e[i].to])tarjan(e[i].to),low[x]=min(low[x],low[e[i].to]);
else if(inq[e[i].to])low[x]=min(low[x],dfn[e[i].to]);
int now=-;
if (low[x]==dfn[x])
{
scc++;
while(now!=x)
{
now=q[top--];inq[now]=;
bl[now]=scc;
}
}
}
int jud()
{
for (int i=;i<=m;i++)
if(bl[*i]==bl[*i-])return ;
return ;
}
int main()
{
T=read();
while (T--)
{
n=read();m=read();
for (int i=;i<=m;i++)u[i]=read(),v[i]=read();
memset(last,,sizeof(last));cnt=;
scc=ind=;
memset(low,,sizeof(low));
memset(dfn,,sizeof(dfn));
for (int i=;i<=n;i++)c[i]=read();
if (m>*n-){puts("NO");continue;}
for (int i=;i<=n;i++)pos[c[i]]=i;
top=;
for(int i=;i<=m;i++)
{
v[i]=pos[v[i]];u[i]=pos[u[i]];
if (u[i]>v[i])swap(u[i],v[i]);
if (v[i]-u[i]==||(v[i]==n&&u[i]==))continue;
u[++top]=u[i],v[top]=v[i];
}
m=top;
for(int i=;i<=m;i++)
for (int j=i+;j<=m;j++)
if((u[i]<u[j]&&u[j]<v[i]&&v[i]<v[j])
||(u[j]<u[i]&&u[i]<v[j]&&v[j]<v[i]))
{
jb(*i-,*j);
jb(*i,*j-);
jb(*j-,*i);
jb(*j,*i-);
}
top=;
for (int i=;i<=*m;i++)
if (!dfn[i])tarjan(i);
if (jud())puts("YES");
else puts("NO");
}
return ;
}

最新文章

  1. Spring boot开发过程遇到的一些小问题
  2. 一个简单的、面向对象的javascript基础框架
  3. oc精简笔记
  4. [SAP ABAP开发技术总结]面向对象OO
  5. SQL中char、varchar、nvarchar的区别(zhuan)
  6. 系统磁盘空间/dev/xvda1占满原因分析
  7. 运用HBuilder上传到GitHub
  8. des加密解密源码 C# key值问题
  9. WeakHashMap和Java引用类型详细解析
  10. Sql Server的艺术(七) SQL 数据插入操作
  11. LeetCode算法题-Letter Case Permutation(Java实现)
  12. 学习java编程思想 第一章 对象导论
  13. 微软语音引擎 TTS 最基本使用
  14. 查看容器IP地址
  15. golang中的init函数以及main函数
  16. 自学Linux Shell1.3-Linux文件系统
  17. TitleBar 的那些设置
  18. IEEEXtreme Practice Community Xtreme9.0 - Dictionary Strings
  19. PHP 7中利用OpenSSL代替Mcrypt加解密的方法详解
  20. [LeetCode] 232. Implement Queue using Stacks_Easy tag: Design

热门文章

  1. centos 升级nginx到1.10.2
  2. NetBeans 启动时出现 Invalid jdkhome specified提示
  3. iOS 性能监测
  4. java中内部类的积累
  5. HDFS只支持文件append操作, 而依赖HDFS的HBase如何完成数据的增删改查
  6. LINUX SHELL 笔记 02: 变量初识
  7. 寻路算法A*, JPS(跳点搜索)的一些杂谈
  8. (转)国内yum源的安装(163,阿里云,epel)
  9. 20145240《网络对抗》Web基础
  10. Linux 软件看门狗 watchdog 喂狗