第一遍做

 #include<iostream>
#include<cstdlib>
#include<cstdio>
#include<cstring>
using namespace std;
int n,m;
char ss[];
int rela[];
int fa[];
int find(int x)
{
if(x==fa[x])return x;
int ff=fa[x];
fa[x]=find(ff);
rela[x]=(rela[x]+rela[ff])%;
return fa[x];
}
int main()
{
freopen("xp.in","r",stdin);
freopen("xp.out","w",stdout);
int i;
int left,right;
cin>>n>>m;
int ans=m;
for(i=;i<=n;i++)fa[i]=i;
for(i=;i<=m;i++)
{
cin>>left>>right;
scanf("%s",ss);
left--;
if(ss[]=='e')
{
int ffl=find(left);
int ffr=find(right);
if(ffl<ffr)
{
fa[ffr]=ffl;
rela[ffr]=(rela[left]-rela[right]+)%;
}
else if(ffl>ffr)
{
fa[ffl]=ffr;
rela[ffl]=(rela[right]-rela[left]+)%;
}
else
{
if(rela[right]!=rela[left])
{
ans=i-;
break;
}
}
}
if(ss[]=='o')
{
int ffl=find(left);
int ffr=find(right);
if(ffl<ffr)
{
fa[ffr]=ffl;
rela[ffr]=(rela[left]-rela[right]+)%;
}
else if(ffl>ffr)
{
fa[ffl]=ffr;
rela[ffl]=(rela[right]-rela[left]+)%;
}
else
{
if(rela[right]==rela[left])
{
ans=i-;
break;
}
}
}
}
cout<<ans;
return ;
}

RE 80 注意长度范围QwQ

第二遍 map一下

 #include<iostream>
#include<cstdlib>
#include<cstdio>
#include<cstring>
#include<map>
using namespace std;
int n,m;
char ss[];
int rela[];
int fa[];
map<int,int>mp;
int find(int x)
{
if(x==fa[x])return x;
int ff=fa[x];
fa[x]=find(ff);
rela[x]=(rela[x]+rela[ff])%;
return fa[x];
}
int main()
{
freopen("xp.in","r",stdin);
freopen("xp.out","w",stdout);
int i;
int left,right;
cin>>n>>m;
int ans=m;
int cnt=;
for(i=;i<=;i++)
fa[i]=i;
for(i=;i<=m;i++)
{
cin>>left>>right;
scanf("%s",ss);
left--;
if(mp[left]==){cnt++;mp[left]=cnt;}
if(mp[right]==){cnt++;mp[right]=cnt;}
if(ss[]=='e')
{
int ffl=find(mp[left]);
int ffr=find(mp[right]);
if(ffl<ffr)
{
fa[ffr]=ffl;
rela[ffr]=(rela[mp[left]]-rela[mp[right]]+)%;
}
else if(ffl>ffr)
{
fa[ffl]=ffr;
rela[ffl]=(rela[mp[right]]-rela[mp[left]]+)%;
}
else
{
if(rela[mp[right]]!=rela[mp[left]])
{
ans=i-;
break;
}
}
}
if(ss[]=='o')
{
int ffl=find(mp[left]);
int ffr=find(mp[right]);
if(ffl<ffr)
{
fa[ffr]=ffl;
rela[ffr]=(rela[mp[left]]-rela[mp[right]]+)%;
}
else if(ffl>ffr)
{
fa[ffl]=ffr;
rela[ffl]=(rela[mp[right]]-rela[mp[left]]+)%;
}
else
{
if(rela[mp[right]]==rela[mp[left]])
{
ans=i-;
break;
}
}
}
}
cout<<ans;
return ;
}

AC啦啦啦

2019.3.23

Vijos 小胖的奇偶的更多相关文章

  1. [vijos P1112] 小胖的奇偶

    第一次看到这题怎么也不会想到是并查集题目…星期五第一次看到这题,到今天做出来,实在是废了好多功夫.看了很多人的解题都有same和diff数组,我也写了,后来发现不对啊两个数组的话find函数怎么写呢? ...

  2. 【带权并查集】【离散化】vijos P1112 小胖的奇偶

    每个区间拆成r和l-1两个端点,若之内有偶数个1,则这两个端点对应的前缀的奇偶性必须相同,否则必须相反. 于是可以用带权并查集维护,每个结点储存其与其父节点的奇偶性是否相同,并且在路径压缩以及Unio ...

  3. 小胖的奇偶(Viojs1112)题解

    原题: 题目描述 huyichen和xuzhenyi在玩一个游戏:他写一个由0和1组成的序列. huyichen选其中的一段(比如第3位到第5位),问他这段里面有奇数个1 还是偶数个1.xuzheny ...

  4. VijosP1112:小胖的奇偶

    描述 huyichen和xuzhenyi在玩一个游戏:他写一个由0和1组成的序列. huyichen选其中的一段(比如第3位到第5位),问他这段里面有奇数个1还是偶数个1.xuzhenyi回答你的问题 ...

  5. vijos 小胖守皇宫

    点击打开题目 树形DP 显然会想到某个点放或不放守卫来定义状态,但在不放的情况下,需要分类讨论是父亲放还是一个儿子放,于是定义以下状态: f[root][0]表示自己不放,父亲也不放 f[root][ ...

  6. BZOJ 3714: [PA2014]Kuglarz

    Description 魔术师的桌子上有n个杯子排成一行,编号为1,2,-,n,其中某些杯子底下藏有一个小球,如果你准确地猜出是哪些杯子,你就可以获得奖品.花费c_ij元,魔术师就会告诉你杯子i,i+ ...

  7. 【并查集模板】 【洛谷P2978】 【USACO10JAN】下午茶时间

    P2978 [USACO10JAN]下午茶时间Tea Time 题目描述 N (1 <= N <= 1000) cows, conveniently numbered 1..N all a ...

  8. Vijos 1144 小胖守皇宫 【树形DP】

    小胖守皇宫 描述 huyichen世子事件后,xuzhenyi成了皇上特聘的御前一品侍卫. 皇宫以午门为起点,直到后宫嫔妃们的寝宫,呈一棵树的形状:某些宫殿间可以互相望见.大内保卫森严,三步一岗,五步 ...

  9. 【动态规划】【最长公共子序列】Vijos P1111 小胖的水果

    题目链接: https://vijos.org/p/1111 题目大意: 多组数据,给两个字符串s1,s2,求把s1,s2拆开从前往后合并后最短是多少 apple + peach = appleach ...

随机推荐

  1. Mybatis 实用篇(四)返回值类型

    Mybatis 实用篇(四)返回值类型 一.返回 List.Map List<User> getUsers(); <select id="getUsers" re ...

  2. 常见的C语言内存错误及对策(转)

    http://see.xidian.edu.cn/cpp/html/483.html 一.指针没有指向一块合法的内存 定义了指针变量,但是没有为指针分配内存,即指针没有指向一块合法的内存.浅显的例子就 ...

  3. 12 Overlap Graphs

    Problem A graph whose nodes have all been labeled can be represented by an adjacency list, in which ...

  4. 懒人的ERP开发框架--2B&苦B程序员专用

    在企业内部的ERP系统开发中,如果使用MS的技术,那么Winform + DevExpress + IIS + WCF +EF 就是懒人的黄金组合了,EF使用数据库优先,一般ERP应用主要关注点在数据 ...

  5. AngularJs2.0

    AngularJs2.0中文官网站发布了. 官网地址:https://angular.cn/ 官网点击任何中文地方都可以显示英文原文,中文文档暂时只有 TypeScript的,JavaScript和d ...

  6. Docker 基本原理

    1 什么是Docker? Docker是基于Go语言实现的云开源项目.Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装.分 ...

  7. sed修改json内容

    1.config.json { "whiteHoleUrl": "http://172.16.80.90/whui/serviceManagement/regist/ne ...

  8. Spring学习(六)——集成memcached客户端

    memcached是高性能的分布式内存缓存服务器.许多Web应用都将数据保存到RDBMS中,应用服务器从中读取数据并在浏览器中显示. 但随着数据量的增大.访问的集中,就会出现RDBMS的负担加重.数据 ...

  9. WebApi 插件式构建方案:重写的控制器获取工厂

    body { border: 1px solid #ddd; outline: 1300px solid #fff; margin: 16px auto; } body .markdown-body ...

  10. 谁说他们版本不兼容——hadoop1.2.1+hbase0.94.11+nutch2.2.1+el

    一.背景 最近由于项目和论文的需要,需要搭建一个垂直搜索的环境,查阅了很多资料,决定使用Apache的一套解决方案hadoop+hbase+nutch+es.这几样神器的作用就不多作介绍了,自行参考各 ...