首页 > 其他分享 >D39 2-SAT P3209 [HNOI2010] 平面图判定

D39 2-SAT P3209 [HNOI2010] 平面图判定

时间:2024-08-06 16:50:32浏览次数:15  
标签:head idx D39 int 平面图 HNOI2010 low dfn SAT

视频链接:D39 2-SAT P3209 [HNOI2010] 平面图判定_哔哩哔哩_bilibili

 

 

 

图论(十三)——平面图和对偶图_图论(十三)——平面图和对偶图-CSDN博客

P3209 [HNOI2010] 平面图判定 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;

const int N=10005;
int n,m,T,x[N],y[N],id[N];
int dfn[N],low[N],stk[N],scc[N],tim,top,cnt;
int head[N],idx;
struct Edge{int to,ne;}e[1000005];

void add(int a,int b){
  e[++idx].to=b;
  e[idx].ne=head[a];
  head[a]=idx;
}
void tarjan(int x){
  dfn[x]=low[x]=++tim;
  stk[++top]=x;
  for(int i=head[x];i;i=e[i].ne){
    int y=e[i].to;
    if(!dfn[y]){ //若y尚未访问
      tarjan(y);
      low[x]=min(low[x],low[y]);
    }
    else if(!scc[y]) //若y已访问且未处理
      low[x]=min(low[x],dfn[y]);
  }
  
  if(low[x]==dfn[x]){ //若x是SCC的根
    ++cnt;
    for(int y=-1;y!=x;)
      scc[y=stk[top--]]=cnt;
  }
}
int main(){
  scanf("%d",&T);
  while(T--){
    scanf("%d%d",&n,&m);
    tim=top=cnt=idx=0;
    for(int i=1;i<=N;i++)
      head[i]=dfn[i]=stk[i]=scc[i]=0;
      
    for(int i=1;i<=m;i++)
      scanf("%d%d",&x[i],&y[i]);
    for(int i=1,x;i<=n;i++)
      scanf("%d",&x), id[x]=i; //保存点的序号
    
    int flag=0;
    if(m>3*n-6) flag=1; //无解
    else{
      for(int i=1;i<=m;i++)
        for(int j=1;j<=m;j++){
          int xi=id[x[i]],yi=id[y[i]],xj=id[x[j]],yj=id[y[j]];
          if(xi>yi) swap(xi,yi); if(xj>yj) swap(xj,yj);
          if(xi<xj&&xj<yi&&yi<yj||xj<xi&&xi<yj&&yj<yi){
            add(i,j+m); //i内j外
            add(i+m,j); //i外j内
          }        
        }
  
      for(int i=1;i<=2*m;i++) if(!dfn[i]) tarjan(i);
      for(int i=1;i<=m;i++)
        if(scc[i]==scc[i+m]) flag=1; //无解
    }
    flag?puts("NO"):puts("YES");
  }
}

 

标签:head,idx,D39,int,平面图,HNOI2010,low,dfn,SAT
From: https://www.cnblogs.com/dx123/p/18340870

相关文章

  • D38 2-SAT CF27D Ring Road 2
    视频链接:D382-SATCF27DRingRoad2_哔哩哔哩_bilibili   CF27DRingRoad2-洛谷|计算机科学教育新生态(luogu.com.cn)#include<iostream>#include<cstring>#include<algorithm>usingnamespacestd;constintN=205;intn,m,x[N],y[N];intdfn[N],......
  • D37 2-SAT P3007 [USACO11JAN] The Continental Cowngress G
    视频链接:D372-SATP3007[USACO11JAN]TheContinentalCowngressG_哔哩哔哩_bilibili  P3007[USACO11JAN]TheContinentalCowngressG-洛谷|计算机科学教育新生态(luogu.com.cn)//O(n*n)#include<iostream>#include<cstring>#include<algorithm>usin......
  • D36 2-SAT P5782 [POI2001] 和平委员会
    视频链接:D362-SATP5782[POI2001]和平委员会_哔哩哔哩_bilibili   P5782[POI2001]和平委员会-洛谷|计算机科学教育新生态(luogu.com.cn)//2-SAT+tarjanO(n+m)#include<iostream>#include<cstring>#include<algorithm>usingnamespacestd;const......
  • GEE案例:Landsat 5、7、8影像构建1985-2023年rsei生态遥感指数详细代码
    之前关于RSEI的博客 GoogleEarthEngine(GEEÿ......
  • D35【模板】2-SAT
    视频链接:D35【模板】2-SAT_哔哩哔哩_bilibili   D14强连通分量Tarjan算法-董晓-博客园(cnblogs.com)P4782【模板】2-SAT-洛谷|计算机科学教育新生态(luogu.com.cn)//2-SAT+tarjanO(n+m)#include<iostream>#include<cstring>#include<algorithm......
  • 创建xtrbackup备份用户 ERROR 1819 (HY000): Your password does not satisfy the cur
    查看密码策略mysql>SHOWVARIABLESLIKE'validate_password%';+--------------------------------------+--------+|Variable_name|Value|+--------------------------------------+--------+|validate_password_check_user_name......
  • IDL根据Landsat QA波段去云处理【代码】
    IDL根据LandsatQA波段去云处理【代码】​landsatQA波段(质量评估波段)是Landsat卫星影像数据中的一个特殊波段,他在Landsat5-9的每个产品中都存在。虽然我们常用的Landsat影像数据有B1-B7波段,但QA波段并不是其中之一。它可以反映出云、云阴影、雪等类别的像素,常常应用在影像......
  • 2-SAT
    为了方便理解,咱们可以先看一组实例。今天huge要买水果lbtl说:1.我不吃梨(\(\nega\))2.我吃苹果(b)3.我吃草莓(c)lxyt说:1.我吃梨(a)2.我吃苹果(b)3.我不吃草莓(\(\negc\))CTH说:1.我不吃梨(\(\nega\))2.我不吃苹果(\(\negb\))3.我不吃草莓(\(\negc\))(huge:不吃,滚)我们不妨根据逻辑......
  • 【笔记】图论:2-sat、连通性、欧拉回路选讲
    [AGC059C]GuessingPermutationforasLongasPossible(2-sat)这个东西十分智障,只需要对于所有\(a,b,c\),如果询问顺序是\((a,b),(b,c),(a,c)\),那么不能\(a<b<c\)或\(a>b>c\)。其它的情况(一条链)你一看发现肯定需要出现上述情况,那么这就是充要条件。你一看你直接对所......
  • C++ 【元编程】检查类型是否具有成员 hasattr
    在python中,可以使用hasattr判断类型是否具有某个成员。在C++中,有的时候我们要写一个模板函数,需要对模板进行一定的限制时。这些限制可能为“该模板函数仅用于拥有某个成员的类型”。在标准<type_traits>中,规定了一些列如is_copy_assignable等模板常量,用于判断是否拥有拷贝构造......