【POJ 1733】 Parity Game
2024-08-31 09:05:22
【题目链接】
【算法】
并查集
【代码】
#include <algorithm>
#include <bitset>
#include <cctype>
#include <cerrno>
#include <clocale>
#include <cmath>
#include <complex>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <deque>
#include <exception>
#include <fstream>
#include <functional>
#include <limits>
#include <list>
#include <map>
#include <iomanip>
#include <ios>
#include <iosfwd>
#include <iostream>
#include <istream>
#include <ostream>
#include <queue>
#include <set>
#include <sstream>
#include <stdexcept>
#include <streambuf>
#include <string>
#include <utility>
#include <vector>
#include <cwchar>
#include <cwctype>
#include <stack>
#include <limits.h>
using namespace std; struct Query
{
int l,r,op;
} q[]; int k,n,i,x,y,len;
int l[],r[],fa[],d[],a[];
char s[][]; inline int get_root(int x)
{
if (fa[x] == x) return x;
int f = get_root(fa[x]);
d[x] ^= d[fa[x]];
return fa[x] = f;
} int main()
{ scanf("%d%d",&k,&n);
for (i = ; i <= n; i++)
{
scanf("%d%d%s",&l[i],&r[i],&s[i]);
a[++len] = l[i] - ;
a[++len] = r[i];
}
sort(a+,a+len+);
len = unique(a+,a+len+) - a - ;
for (i = ; i <= n; i++)
{
q[i].l = lower_bound(a+,a+len+,l[i]-) - a;
q[i].r = lower_bound(a+,a+len+,r[i]) - a;
q[i].op = strcmp(s[i],"odd") == ? : ;
}
for (i = ; i <= * n; i++) fa[i] = i;
for (i = ; i <= n; i++)
{
x = get_root(q[i].l);
y = get_root(q[i].r);
if (x == y)
{
if ((d[q[i].l] ^ d[q[i].r]) != q[i].op)
{
printf("%d\n",i-);
exit();
}
} else
{
fa[x] = y;
d[x] = d[q[i].l] ^ d[q[i].r] ^ q[i].op;
}
}
printf("%d\n",n); return ; }
最新文章
- .NET Core 2.0版本预计于2017年春季发布
- Codeforces Round #366 (Div. 2) ABC
- java并行计算Fork和Join的使用
- 前端框架——AmazeUI学习
- 从C# 到 OC
- OpenCV实现的高斯滤波探究_1(《学习OpenCV》练习题第五章第三题ab部分)
- java 生成UUID
- Linux下搭建Oracle11g RAC(3)----创建用户及配置相关文件
- PHP+Apache怎样监控多个port和配置多网站
- 为了解决linux配置Nginx 只能关闭防火墙才能访问的问题
- mac 删除文件夹里所有的.svn文件
- [LeetCode] Shifting Letters 漂移字母
- BZOJ.4942.[NOI2017]整数(分块)
- CI、CD相关概念
- homebrew 安装 formula 的不同历史版本——以安装 node 为例
- metasploit常见服务的漏点扫描模块
- Phoenix系列:二级索引(1)
- Java 理论与实践: 用弱引用堵住内存泄漏
- Web前端基础——CSS
- jenkins+maven+svn+npm自动发布部署实践