分析

https://yhx-12243.github.io/OI-transit/records/uoj356%3Bloj2391%3Bac2534.html

代码

#include<bits/stdc++.h>
using namespace std;
const int mod = 1e9+;
vector<int>v[];
int fa[][],a[],b[],bel[],is[],n,m,vis[];
inline int sf(int wh,int x){return fa[wh][x]==x?x:fa[wh][x]=sf(wh,fa[wh][x]);}
inline void dfs(int x,int f,int d){
if(vis[x]!=-){
if(vis[x]!=d){
puts("");
exit();
}
return;
}
vis[x]=d;
for(int i=;i<v[x].size();i++)
if(v[x][i]!=f)dfs(v[x][i],x,d^);
}
int main(){
int i,j,k,Ans=;
scanf("%d",&n);
for(i=;i<=*n+;i++)fa[][i]=fa[][i]=i;
for(i=;i<=n;i++){
scanf("%d%d",&a[i],&b[i]);
bel[a[i]]=bel[b[i]]=i;
is[b[i]]=;
fa[][b[i]]=b[i]+;
}
for(i=;i<=*n;i++)
if(is[i]){
int x=a[bel[i]],la=;
for(j=sf(,x+);j<=i;j=sf(,j+)){
j=sf(,j);
v[bel[j]].push_back(bel[i]);
v[bel[i]].push_back(bel[j]);
if(la)fa[][la]=j;
la=j;
}
fa[][x]=x+;
}
memset(vis,-,sizeof(vis));
for(i=;i<=n;i++)
if(vis[i]==-)Ans=Ans*%mod,dfs(i,,);
cout<<Ans;
return ;
}

最新文章

  1. Yii源码阅读笔记(三十一)
  2. git pull 冲突解决
  3. 北大poj- 1067
  4. java虚拟机内部介绍
  5. 归并排序 空间复杂度为O(1)的做法
  6. mysql表名大小写问题
  7. Moving Tables
  8. 李洪强iOS开发之-环信02.3_具体接口讲解 - Apple Docs
  9. java CountDownLatch 使用介绍
  10. 【批处理学习笔记】第十三课:常用dos命令(3)
  11. CWnd *和HWnd转换
  12. Socket 通讯原理
  13. laravel整合workerman做聊天室
  14. 深入浅出ES6:不定参数和默认参数
  15. 机器学习入门13 - 正则化:稀疏性 (Regularization for Sparsity)
  16. java集合框架-List集合ArrayList和LinkedList详解
  17. Getting started - RN1
  18. 使用git或TortoiseGit推送项目至gitlab
  19. react native中Unable to load script from assets &#39;index.android.bundle&#39;解决方案
  20. 如何将 .net2.0注册到IIS ,重新注册IIS

热门文章

  1. [Web 前端] 006 css 三种页面引入的方法
  2. 1 Python 新建项目
  3. Ad Hoc Distributed Queries / xp_cmdshell 的启用与关闭
  4. vscode怎么修改颜色主题里的某种颜色
  5. JWT详解-(JSON Web Token教程)
  6. SCAU 2015 GDCPC team_training1
  7. Linux常用指令全集
  8. webpack打包过程及开发过程
  9. h5与app交互
  10. smarty之缓存机制