GOJ1446 并查集判断逻辑错误(是否说谎)

2023-10-12 01:58

本文主要是介绍GOJ1446 并查集判断逻辑错误(是否说谎),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这道题暑假做过,但是忘了。

思路:因为无法直接将输入的两个数放到一个并查集,所以可以让对应的数字与足够远但是又能够一一对应回来的数做联合。

#include<cstdio>
#include<cstring>
#include<map>
#include<iostream>
using namespace std;
int n,l,k,a,b,vis;int main(){scanf("%d",&n);for(int i=0;i<n;i++){vis=0;map<int,int> t;map<int,int>::iterator it1;map<int,int>::iterator it2;//memset(t,-1,sizeof(t));scanf("%d %d",&l,&k);for(int j=0;j<k;j++){scanf("%d %d",&a,&b);it1=t.find(a);it2=t.find(b);if(a==b)vis=1;else if(it1==t.end()&&it2==t.end()){t[a]=1;//t[1]=1t[b]=0;//t[2]=0 t[3]=1//cout<<"a:"<<a<<" "<<t[a]<<" "<<"b:"<<b<<" "<<t[b]<<endl;}else if(it1!=t.end()&&it2==t.end()){t[b]=!t[a];//cout<<"a:"<<a<<" "<<t[a]<<" "<<"b:"<<b<<" "<<t[b]<<endl;}else if(it1==t.end()&&it2!=t.end()){t[a]=!t[b];//cout<<"a:"<<a<<" "<<t[a]<<" "<<"b:"<<b<<" "<<t[b]<<endl;}else if(it1!=t.end()&&it2!=t.end())if(t[a]==t[b])vis=1;}printf("Answer #%d:\n",i+1);if(vis==1)printf("YES\n");elseprintf("NO\n");}return 0;
}

这篇关于GOJ1446 并查集判断逻辑错误(是否说谎)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/192415

相关文章

Python中ModuleNotFoundError: No module named ‘timm’的错误解决

《Python中ModuleNotFoundError:Nomodulenamed‘timm’的错误解决》本文主要介绍了Python中ModuleNotFoundError:Nomodulen... 目录一、引言二、错误原因分析三、解决办法1.安装timm模块2. 检查python环境3. 解决安装路径问题

如何解决mysql出现Incorrect string value for column ‘表项‘ at row 1错误问题

《如何解决mysql出现Incorrectstringvalueforcolumn‘表项‘atrow1错误问题》:本文主要介绍如何解决mysql出现Incorrectstringv... 目录mysql出现Incorrect string value for column ‘表项‘ at row 1错误报错

最新Spring Security实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)

《最新SpringSecurity实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)》本章节介绍了如何通过SpringSecurity实现从配置自定义登录页面、表单登录处理逻辑的配置,并简单模拟... 目录前言改造准备开始登录页改造自定义用户名密码登陆成功失败跳转问题自定义登出前后端分离适配方案结语前言

Java逻辑运算符之&&、|| 与&、 |的区别及应用

《Java逻辑运算符之&&、||与&、|的区别及应用》:本文主要介绍Java逻辑运算符之&&、||与&、|的区别及应用的相关资料,分别是&&、||与&、|,并探讨了它们在不同应用场景中... 目录前言一、基本概念与运算符介绍二、短路与与非短路与:&& 与 & 的区别1. &&:短路与(AND)2. &:非短

SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法

《SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法》本文主要介绍了SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法,具有一定的参考价值,感兴趣的可以了解一下... 目录方法1:更改IDE配置方法2:在Eclipse中清理项目方法3:使用Maven命令行在开发Sprin

前端bug调试的方法技巧及常见错误

《前端bug调试的方法技巧及常见错误》:本文主要介绍编程中常见的报错和Bug,以及调试的重要性,调试的基本流程是通过缩小范围来定位问题,并给出了推测法、删除代码法、console调试和debugg... 目录调试基本流程调试方法排查bug的两大技巧如何看控制台报错前端常见错误取值调用报错资源引入错误解析错误

C++实现回文串判断的两种高效方法

《C++实现回文串判断的两种高效方法》文章介绍了两种判断回文串的方法:解法一通过创建新字符串来处理,解法二在原字符串上直接筛选判断,两种方法都使用了双指针法,文中通过代码示例讲解的非常详细,需要的朋友... 目录一、问题描述示例二、解法一:将字母数字连接到新的 string思路代码实现代码解释复杂度分析三、

Java实现检查多个时间段是否有重合

《Java实现检查多个时间段是否有重合》这篇文章主要为大家详细介绍了如何使用Java实现检查多个时间段是否有重合,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录流程概述步骤详解China编程步骤1:定义时间段类步骤2:添加时间段步骤3:检查时间段是否有重合步骤4:输出结果示例代码结语作

Java判断多个时间段是否重合的方法小结

《Java判断多个时间段是否重合的方法小结》这篇文章主要为大家详细介绍了Java中判断多个时间段是否重合的方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录判断多个时间段是否有间隔判断时间段集合是否与某时间段重合判断多个时间段是否有间隔实体类内容public class D

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤