题目链接:https://vjudge.net/problem/POJ-1733

解题思路:并查集+离散化

AC代码:

 #include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
#include <map>
#include <cstring>
#include <cmath>
using namespace std;
const int maxn=;
struct query{
int l,r;
int oe;
}q[maxn];
map<int,int> lists;
int v[maxn],fa[maxn];
int finds(int t){
if(fa[t]==-)
return t;
int tmp=finds(fa[t]);
v[t]^=v[fa[t]];
return fa[t]=tmp;
}
int main(){
// freopen("in.txt","r",stdin);
// freopen("out.txt","w",stdout);
int vals[maxn<<];
char ooe[];
int ques,len;
memset(fa,-,sizeof(fa));
memset(v,,sizeof(v));
scanf("%d",&len);
scanf("%d",&ques);
int j=;
for(int i=;i<=ques;i++){
scanf("%d%d%s",&q[i].l,&q[i].r,ooe);
q[i].l-=;
if(ooe[]=='e') q[i].oe=;
else q[i].oe=;
vals[j]=q[i].l; j++;
vals[j]=q[i].r; j++;
}
sort(vals+,vals+j);
int m=unique(vals+,vals+j)-vals-;
for(int i=;i<=m;i++){
lists[vals[i]]=i;
}
int ending=;
for(int i=;i<=ques;i++){
int t1=finds(lists[q[i].l]),t2=finds(lists[q[i].r]);
int vl=v[lists[q[i].l]],vr=v[lists[q[i].r]];
if(t1==t2){
if(vr^vl!=q[i].oe){
printf("%d\n",i-);
ending=;
break;
}
}
else{
fa[t2]=t1;
v[t2]=q[i].oe^vl^vr;
}
}
if(!ending) printf("%d\n",ques);
return ;
}

额,先这样吧,晚上或者明天再来详谈。

最新文章

  1. sublimetext3中保存代码片段
  2. ACCEPTANCE CRITERIA FOR USER STORIES
  3. mongodb(回滚)
  4. AI(Adobe Illustrator)简单入门——米老鼠
  5. 求教Sublime Text2 SublimeLinter插件安装问题
  6. 【技巧性(+递归运用)】UVa 1596 - Bug Hunt
  7. 使用NSURLSession实现断点续传
  8. Hadoop的辉煌还能延续多久?
  9. SonarQube4.4+Jenkins进行代码检查实例之二
  10. 一道C语言面试题:写一个宏,将16位的整数转为Big Endian
  11. DxPackNet 1.打开摄像头
  12. installshield安装包制作
  13. redis的编译安装
  14. Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析
  15. Java时间日期格式转换 转自:http://www.cnblogs.com/edwardlauxh/archive/2010/03/21/1918615.html
  16. mysqldump备份(Windows)
  17. Rsync常见错误和问题
  18. 洛谷 P4345 [SHOI2015]超能粒子炮&#183;改 解题报告
  19. 模仿QQ 之弹出菜单
  20. git-常用命令一览表

热门文章

  1. telnet 636端口不通
  2. MySQL用另一张表的字段值Update本表
  3. TCP 3-Way Handshake
  4. Jaba_Web--JDBC 删除记录操作模板
  5. P5520 【[yLOI2019] 青原樱】
  6. CRT 连接AWS-EC2
  7. E - Tunnel Warfare HDU - 1540 F - Hotel G - 约会安排 HDU - 4553 区间合并
  8. JAVA设计模式之桥接模式(bridge)
  9. SpringCloud (一) :微服务架构
  10. train loss与test loss结果分析/loss不下降