Vijos 小胖的奇偶
第一遍做
#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 小胖的奇偶的更多相关文章
- [vijos P1112] 小胖的奇偶
第一次看到这题怎么也不会想到是并查集题目…星期五第一次看到这题,到今天做出来,实在是废了好多功夫.看了很多人的解题都有same和diff数组,我也写了,后来发现不对啊两个数组的话find函数怎么写呢? ...
- 【带权并查集】【离散化】vijos P1112 小胖的奇偶
每个区间拆成r和l-1两个端点,若之内有偶数个1,则这两个端点对应的前缀的奇偶性必须相同,否则必须相反. 于是可以用带权并查集维护,每个结点储存其与其父节点的奇偶性是否相同,并且在路径压缩以及Unio ...
- 小胖的奇偶(Viojs1112)题解
原题: 题目描述 huyichen和xuzhenyi在玩一个游戏:他写一个由0和1组成的序列. huyichen选其中的一段(比如第3位到第5位),问他这段里面有奇数个1 还是偶数个1.xuzheny ...
- VijosP1112:小胖的奇偶
描述 huyichen和xuzhenyi在玩一个游戏:他写一个由0和1组成的序列. huyichen选其中的一段(比如第3位到第5位),问他这段里面有奇数个1还是偶数个1.xuzhenyi回答你的问题 ...
- vijos 小胖守皇宫
点击打开题目 树形DP 显然会想到某个点放或不放守卫来定义状态,但在不放的情况下,需要分类讨论是父亲放还是一个儿子放,于是定义以下状态: f[root][0]表示自己不放,父亲也不放 f[root][ ...
- BZOJ 3714: [PA2014]Kuglarz
Description 魔术师的桌子上有n个杯子排成一行,编号为1,2,-,n,其中某些杯子底下藏有一个小球,如果你准确地猜出是哪些杯子,你就可以获得奖品.花费c_ij元,魔术师就会告诉你杯子i,i+ ...
- 【并查集模板】 【洛谷P2978】 【USACO10JAN】下午茶时间
P2978 [USACO10JAN]下午茶时间Tea Time 题目描述 N (1 <= N <= 1000) cows, conveniently numbered 1..N all a ...
- Vijos 1144 小胖守皇宫 【树形DP】
小胖守皇宫 描述 huyichen世子事件后,xuzhenyi成了皇上特聘的御前一品侍卫. 皇宫以午门为起点,直到后宫嫔妃们的寝宫,呈一棵树的形状:某些宫殿间可以互相望见.大内保卫森严,三步一岗,五步 ...
- 【动态规划】【最长公共子序列】Vijos P1111 小胖的水果
题目链接: https://vijos.org/p/1111 题目大意: 多组数据,给两个字符串s1,s2,求把s1,s2拆开从前往后合并后最短是多少 apple + peach = appleach ...
随机推荐
- yarn 完美替代 npm
众所周知,npm是nodejs默认的包管理工具,我们通过npm可以下载安装或者发布包,但是npm其实存在着很多小问题,比如安装速度慢.每次都要在线重新安装等,而yarn也正是为了解决npm当前存在的问 ...
- CodeForces 518B Tanya and Postcard (题意,水题)
题意:给定两个字符串,然后从第二个中找和第一个相同的,如果大小写相同,那么就是YAY,如果大小写不同,那就是WHOOPS.YAY要尽量多,其次WHOOPS也要尽量多. 析:这个题并不难,难在读题懂题意 ...
- thinkphp5 swoole 执行异步任务
目录结构: 服务器端: <?php /* *author:hdj */ namespace app\Console; use think\console\Command; use think\c ...
- PowerDesigner工具建表步骤
以商场VIP系统中的表为例 先建立管理员用户表 1.双击打开PowerDesigner工具,点File 选择 New Model 打开如下图,选择标红部分,点击OK 2点击选择标红部位Entity ...
- HTML5 Canvas之猜数字游戏
主要的内容描述的是如何渲染一个矩形的边框和填充背景,以及文字. 代码中有详细的注释: 效果图: 以下是代码: <!DOCTYPE html> <html lang="cn& ...
- ASP.NET Core2集成Office Online Server(OWAS)实现办公文档的在线预览与编辑(支持word\excel\ppt\pdf等格式)
Office Online Server是微软开发的一套基于Office实现在线文档预览编辑的技术框架(支持当前主流的浏览器,且浏览器上无需安装任何插件,支持word.excel.ppt.pdf等文档 ...
- HTML5和App之争论
2013了,移动互联网火了几年,我们也看清了原生App的真面目,App很多很好,但是盈利很难,这时我们不得不把目光重新转向HTML5. 简单地说,HTML5是一个新技术,可以让开发者基于Web开发的A ...
- Ubuntu 12.04 安装最新版本NodeJS
昨天搭建了一个Windows NodeJS 运行环境,但Windows 运行NodeJS命令行各种别扭,开源包的编译也是各种问题,折磨了我一天一夜,果断换到Linux 平台.. 我选择了Ubuntu ...
- 手动编译安装lamp之php
转自马哥教育讲课文档 三.编译安装php-5.4.8 1.解决依赖关系: 请配置好yum源(可以是本地系统光盘)后执行如下命令: # yum -y groupinstall "X Softw ...
- web 给大家分享一个好玩的东西,也许你那块就用的到
先看效果: 就这个效果.当你点击右上角的删除按钮,会删除掉item1. 上代码: <!DOCTYPE html> <html> <head> <meta ch ...