POJ 1733 Parity game 离散化+带权并查集
2015-04-23 22:49
447 查看
题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=66964#problem/H
题意:给定一系列关于连续区间的1的个数的奇偶性描述,判断第一次出现矛盾的位置。
思路:有了HDU 3038:http://blog.csdn.net/i_am_a_winer/article/details/45202985 的基础,这题就比较好理解了,把原来维护距离值变成维护与根节点的区间的1的个数的奇偶性。只是这题多了一个离散化。当然有了map离散化也就变得相对方便了许多。离散化之后,我么把对原来数的操作改为了对其映射值的操作,由于一一映射的关系,两者操作等效。比较蛋疼的是,我把pre和sum数组都换成map来做,代码和思路几乎一模一样,可就是WA了,真不知道为何。。
代码:
题意:给定一系列关于连续区间的1的个数的奇偶性描述,判断第一次出现矛盾的位置。
思路:有了HDU 3038:http://blog.csdn.net/i_am_a_winer/article/details/45202985 的基础,这题就比较好理解了,把原来维护距离值变成维护与根节点的区间的1的个数的奇偶性。只是这题多了一个离散化。当然有了map离散化也就变得相对方便了许多。离散化之后,我么把对原来数的操作改为了对其映射值的操作,由于一一映射的关系,两者操作等效。比较蛋疼的是,我把pre和sum数组都换成map来做,代码和思路几乎一模一样,可就是WA了,真不知道为何。。
代码:
#include<iostream> #include<cstdio> #include<map> using namespace std; int pre[10010],sum[10010]; int N,M; map<int,int> mp;//离散化 char s[10]; int find(int x){ if(x==pre[x]) return x; int t=find(pre[x]); sum[x]=(sum[x]+sum[pre[x]])%2; return pre[x]=t; } int judge(int x,int y,int z){ int fx=find(x),fy=find(y); if(fx==fy){ if((sum[x]+sum[y]+z)&1) return 0; return 1; } pre[fy]=fx; sum[fy]=((sum[x]+sum[y]+z)&1)? 1:0; return 1; } int main(){ //freopen("D:\\in.txt","r",stdin); cin>>N>>M; for(int i=0;i<10010;i++) pre[i]=i,sum[i]=0; int a,b,cnt,tot=0; for(cnt=0;cnt<M;cnt++){ scanf("%d %d %s",&a,&b,s); a--; if(mp.count(a)==0) mp[a]=tot++;//把出现的每一个数赋予一个不同的值 if(mp.count(b)==0) mp[b]=tot++; int d=(s[0]=='e')? 0:1; if(judge(mp[a],mp[b],d)) continue; break; } cout<<cnt<<endl; return 0; }
相关文章推荐
- poj 1733 Parity game 【种类并查集+离散化】
- poj 1733 - Parity game(离散化+并查集)
- POJ 1733 Parity game 带权并查集+离散化处理
- POJ 1733 Parity game(离散化 + 带权并查集)
- poj 1733 Parity game 离散化+带权并查集(区间)
- POJ-1733-Parity game [带权并查集][离散化]
- poj 1733 Parity game 并查集 离散化
- Poj 1733 Parity Game(离散化+并查集)
- POJ - 1733 Parity game 带权并查集+离散化
- POJ - 1733 Parity game 种类并查集+离散化
- 【离散化+并查集】POJ_1733_Parity game
- poj 1733 Parity game(带权并查集+离散化)
- POJ 1733 Parity game (并查集)
- pku1733 Parity game(离散化+并查集拓展应用)
- POJ 1733 Parity game(并查集)
- poj 1733 Parity game 【离散+并查集】
- POJ 1733 Parity game 【带权并查集】
- poj 1733 Parity game 并查集 解题报告
- POJ 1733 Parity game(并查集)
- poj 1733 Parity game(带权并查集)