[ZOJ1518][POJ1291] This Sentence is False

小新学习K8s第一天之K8s基础概念 kubernetes是一个可移植,可扩展的开源平台,用于管理容器化工作负载和服务,有助于声明式配置和自动化。它拥有庞大且快速发展的生态系统。kubernetes服务,支持和工具随处可见。作用:用于自动部署,扩展和管理“容器化应用程序”的开源系统。可以理解成k8s是负责自动化运维管理多个容器化程序(比如docker)的集群,是一个生态及其丰富的容器编排框架工具。 阅读详情

ZOJ: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1518

POJ: http://poj.org/problem?id=1291

题目大意:

有n个句子,编号为1..n,为

Sentence XXX is true/false.

问是否自相矛盾,如果是输出Inconsistent。否则输出最多多少句可以是对的?



解题思路:

使用并查集的方法。

对每个句子i,设置一个对立量!i (用n+i表示)。

(1)第i个句子: Sentence t is false.

    if (same(i, t) || same(!i, !t)) inconsistant

    setunion(i, !t)

    setunion(t, !i)


(2)第i个句子: Sentence t is true.

    if (same(i,!t) || same(!i, t)) inconsistant

    setunion(i, t)

    setunion(!i, !t)

并查集建立之后遍历每一个集合和其对立的集合,取元素较多的集合赋真值(注意这里统计元素的时候不考虑之前设置的对立量),真语句数量对应增加。


源代码:

/*
(1)i: Sentence t is false.
    if (same(i, t) || same(!i, !t)) inconsistant
    setunion(i, !t)
    setunion(t, !i)

(2)i: Sentence t is true.
    if (same(i,t)) continue
    if (same(i,!t) || same(!i, t)) inconsistant
    setunion(i, t) setunion(!i, !t)

*/

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
using namespace std;
#define maxn 2010

void makeset(int f[], int a)
{
    f[a]=a;
}
int find(int f[], int a)
{
    if (f[a]==a) return a;
    return f[a]=find(f, f[a]);
}
bool same(int f[], int a, int b)
{
    return find(f,a)==find(f,b);
}
void setunion(int f[], int a, int b)
{
    f[find(f,a)]=find(f,b);
}

bool sentence(int n, int f[], int i, int t, char tf)
{
    if (tf=='f')  //i: Sentence t is false.
    {
        if (same(f, i, t) || same(f, i+n, t+n)) return false;
        setunion(f, i, n+t);
        setunion(f, t, n+i);
    }
    else            //i: Sentence t is true.
    {
        if (same(f, i, n+t) || same(f, t, n+i)) return false;
        setunion(f, i, t);
        setunion(f, i+n, t+n);
    }
    return true;
}

void printans(int n, int f[])
{
//循环每一个集合,取其 和 其对立集合对的元素多的集合
    int root1, root2, cal1, cal2, ans=0;
    bool v[maxn]={0};
    for (int i=0; i<n; i++)
    {
        if (same(f, i, n+i))
        {
            printf("Inconsistent\n");
            return;
        }
        if (v[i]!=v[i+n]){
            printf("BBBBBBBBBBBBBBBBBUUUUUUUUUUUUUUUGGGGGGGG\n"); 
            return;
        }
        if (!v[i] && !v[i+n])
        {
            root1=find(f, i);
            root2=find(f, i+n);
            cal1=1;
            cal2=0;
            v[i]=v[i+n]=1;
            for (int j=0; j<2*n; j++)
                if (!v[j])
                {
                    if (same(f, root1, j)){v[j]=1;if(j<n)cal1++;}
                    else if (same(f, root2, j)){v[j]=1;if(j<n)cal2++;}
                    
                }
            ans+=(cal1>cal2)?cal1:cal2;
        }
    }
    printf("%d\n", ans);
}

int main()
{
    int n, t;
    int f[maxn];
    char str[100];
    char s1[20], s2[20], s3[20];
    bool inconsistent;
    while (scanf("%d", &n)==1 && n)
    {
        gets(str);
        for (int i=0; i<2*n; i++)       //n+i stands for !i
            makeset(f, i);
        inconsistent=false;
        for (int i=0; i<n; i++)
        {
            scanf("%s %d %s %s", s1, &t, s2, s3);
            if (!inconsistent && !sentence(n, f, i, t-1, s3[0]))
                inconsistent=true;
        }
        if (inconsistent)
            printf("Inconsistent\n");
        else
            printans(n, f);
    }
    return 0;
}


C#跨平台制图新纪元:Mapsui,一库在手,地图我有 深入学习Mapsui的渲染机制,定制属于你的地图样式,无论是颜色、图标还是文字,都可以随心所欲。 阅读详情

相关推荐

AD9361 LVDS数据接口时序解析与FPGA实现

本文详细解析了AD9361 LVDS数据接口的时序特性与FPGA实现方法,重点探讨了DATA_CLK、Rx_FRAME等关键信号的时序关系及数据拼接技巧。通过Verilog代码示例和调试经验分享,帮助开发者解决跨时钟域处理、IQ数据重组等常见问题,提升射频收发系统的稳定性与性能。

weixin_29186249的博客 128

POJ1291-并查集/dfs

并查集 题意:找出给定的这些话中是否有冲突。若没有则最多有多少句是对的。 /* 思路:如果第x句说y是对的,则x,y必定是一起的,x+n,y+n是一起的;反之x,y+n//y,x+n是一起的。 利用并查集判断 x 和 x+n 是否在同一集合。 至于查找最多正确的话,对这些 “小树” 进行dfs即可。 */ #include&lt;stdio.h&gt; #include&lt;string....

xxx0624 239

STK轨道仿真环境搭建实战:从地月系到多天体场景

本文详细介绍了STK轨道仿真环境搭建的实战指南,从基础的地月系统到复杂的多天体场景。通过逐步操作说明和实用技巧,帮助用户快速掌握STK软件的使用方法,提升轨道仿真效率,适用于航天任务设计和教学演示。

weixin_30312563的博客 397

POJ 1291 This Sentence is False 并查集应用

This Sentence is False Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 859 Accepted: 370 Description The court of King Xeon 2.4 is plagued with intrigue

churehill123的专栏 1365

VCS2018在Ubuntu20 18安装步骤

之前在Ubuntu20上下VCS,花了好几天时间,本来想写博客避免以后重复劳动。但由于各种原因拖了一两个月,这次由于疫情原因,期末考试推迟,所以就再次在Ubuntu18上下了VCS,顺便写博客记录。 以下VCS2018安装方法适用于 Ubuntu20、Ubuntu18,亲测可用。其他Linux发行版没试过,但应该步骤差不多。 文章目录安装包安装步骤1、建立安装路径,更改权限2、运行安装器进行安装3、生成License文件4、设置环境变量5、验证License6、启动lmgrd验证软件是否安装成功dvever

s-stone的博客 3万+

雷达气象学(8)——反射率因子图实战(强对流预警篇)

本文聚焦雷达反射率因子图在强对流预警中的实战应用,深入解析了柱状回波、有界弱回波区(BWER)、三体散射(TBSS)等关键回波结构特征,这些是识别超级单体风暴和大冰雹的核心“身份证”。文章强调从静态识别转向动态追踪与多源数据综合研判的思维转变,并提供了系统的实战分析流程与常见误区避坑指南,旨在提升对强对流天气的短临预警能力。

weixin_29213827的博客 485

POJ 1291: This Sentence is False

题目链接:http://poj.org/problem?id=1291 题意: 给出n句话, 形如“第x句话是错误的”或“第x句话是正确的”。 判断是否有合法结果。 若有,计算至多有多少句话是正确的。 算法: 典型的并查集。 对于每个节点,维护与父节点的距离d[x], 同一并查集内, 相对距离为偶数的节点共真假。 每处理一条关系, 若这两句话不在一个

frog的小池塘 1688

SEATA安装使用

springcloudalibaba集成seata分布式事务、seata持久化

原名又逢乱世。不要放下学习的脚步,毕竟比天天打牌、钓鱼、打游戏更能从内在充实自己。 2368

POJ1291【This Sentence is False】(并查集、dfs)

题目地址:POJ1291【This Sentence is False】 题目描述: Xeon 2.4国王的宫廷充满了阴谋和阴谋。国王特勤局最近发现的一份文件被认为是某种恶作剧的一部分。这份文件只包含一组句子,说明彼此的真假。句子的形式为"Sentence X is true/false",其中X表示集合中的一个句子。国王的特勤局怀疑这些判决实际上是指另一份尚未被发现的文件。 当他们试图确定文件的来源和目的时,国王命令你找出文件中包含的句子集是否一致,也就是说,这些句子是否有有效的真理赋值。如果集合是一致的

Obliviate的博客 259

【错误解决】本地计算机上的mysql服务启动停止后,某些服务在未由其他服务或程序使用时将自动停止

转载请注明出处:http://blog.youkuaiyun.com/qq_26525215 本文源自【大学之旅_谙忆的博客】 在启动mysql服务时出现该错误: 本地计算机上的mysql服务启动停止后,某些服务在未由其他服务或程序使用时将自动停止。mysql 版本 5.7.14 系统 win 7后来经过一系列的百度,谷歌,总算是解决了。首先,你需要把原来的服务删除:mysqld --remove mysq

谙忆-陈浩翔 12万+

YoloV8改进策略:基于双层路由注意力的视觉Transformer提升YoloV8的检测能力

本文使用2023年最新提出的BiFormer,实现对YoloV8的改进。目前,BiFormer还有在显存占用,还有性能存在问题。我们先试试效果,期待作者在Pytoch上早日实现优化。论文链接:https://arxiv.org/abs/2303.08810代码链接:https://github.com/rayleizhu/BiFormer作为视觉transformer的核心构建模块,注意力是捕捉长程依赖关系的强大工具。

m0_47867638的博客 2844

POJ 1291 This Sentence is False 笔记

判断文件中有多少真话。

woniupengpeng的专栏 396

基于STM32设计的太阳能智慧路灯_444

本文设计并实现了一种基于 STM32 的太阳能智慧路灯系统。系统以 STM32F103C8T6 单片机为核心,集成温湿度检测、空气质量检测、环境光照检测、行人检测和路灯故障检测等功能,实现对路灯运行环境和工作状态的实时感知。

461

POJ1291 This Sentence is False (并查集 || 哈希)

本文出自:http://blog.youkuaiyun.com/svitter 写在之前: 最近感觉做了不少的并查集的题目。发现A说B说的对,谁说假话谁说真话这种游戏,基本全是并查集。做下记录,防止以后忘记。 题意: 题目给出n句话,编号从1开始。每一句话都是类似:Sentence $num is true/false 这种形式。 最后输出真话最多的情况的真话个数。 输入输出分析:

svitter的专栏 1730

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ZOJ 1291 MPI Maelstrom 简单最短路入门

输出格式有坑 #include <cstdio> #include <cstring> #include <algorithm> #include <string> #include <queue> #include <cmath> //#include <malloc.h> using namespace std...

监心司的博客 206

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

[ZOJ1413][POJ1021] 2D Nim 非人品解法

ZOJ: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1413POJ: http://poj.org/problem?id=1021题目大意:其实和Nim问题是没有关系的。给出两个玩2D-Nim游戏的棋

Dango's happy life 1570

[ZOJ1144][POJ1104] Robbery

ZOJ:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1144POJ:http://poj.org/problem?id=1104题目大意:有大盗光顾了一个W*H的矩形城市。给出一些信息,t时刻大盗不在矩

Dango's happy life 1400

[ZOJ1462][POJ1112] Team Them Up!

ZOJ: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=462POJ: http://poj.org/problem?id=1112题目大意:把一些人分成两组,每一组中的人满足任意两个人都相互认识,且要求两组

Dango's happy life 1265

[ZOJ 1116 ] [ POJ 1911 ] A Well-Formed Problem

ZOJ:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1116题目大意:(对XML没有了解,只是按照字面意思理解了一下题意)与这样有起始结束声明的,name称为tag是empty el

Dango's happy life 1233

[ZOJ1021] The Willy Memorial Program

【题目大意】有一些竖直的圆筒状管子,管子间有理想的水平细管相连。一只蜘蛛停在某跟管子的某个高度上,从第一根管子往系统注水,问前往营救的老鼠有多长时间可以关闭热水阀门。    最终抽象为当水上升到指定位置的时候系统中的总水柱高度。 【解题思路】 AC思路:(参考“狗狗40题搞完纪念“)从第一根管子开始注水,采用优先队列的方式每次选取可注水且纵坐标最大(最低)的地方进行注水。若中途出现溢出现象,则永远

Dango's happy life 1190

[ZOJ1391][POJ1436] Horizontally Visible Segments

题目大意:若两条竖直线段之间可以连一条水平线,这条水平线不与其他竖直线段相交,称这两条竖直线段为“相互可见”的。若存在三条竖直线段,两两”相互可见“,则构成”线段三角形“。给出一些竖直的线段,问一共有多少”线段三角形“解题思路:这道题在刘汝佳的黑书里有解题思路的指导,在图论部分出

Dango's happy life 1134

[ZOJ1301][POJ1137] The New Villa

ZOJ: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1301POJ: http://poj.org/problem?id=1137题目大意:每个房间的开关经常是控制别的房间的灯的。

Dango's happy life 1089

[ ZOJ 1197 ] [POJ 1486] Sorting Slides

ZOJ: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1197 POJ: http://poj.org/problem?id=1486 题目大意: 有一些透明的幻灯片乱放成一大堆。

Dango's happy life 1050

[ZOJ 1387] [POJ 1432] Decoding Morse Sequences

ZOJ: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1387POJ: http://poj.org/problem?id=1432题目大意:给出一个字母的译码表,给出一个有n个单词的字典,给出一串编码。问再给出字典中有多少种不同的解码方式。题目分析:首先编码只有-和.,可以很方便地建立一棵Trie树,还是最熟悉的二叉方

Dango's happy life 1048

[ ZOJ 1043 ][ POJ 1108 ] Split Windows

ZOJ: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1043POJ: http://poj.org/problem?id=1108题目大意:(图见原题)每一个无分割的窗口有一个大写字母标签。每个窗口左上角有大写字母标签,其他三个角有*号,上下边界用-,左右边界用|表示。每个窗口分割可以用一颗二叉树表示,表示方式如下:1

Dango's happy life 1027

[ZOJ 1463] Brackets Sequence

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1463 题目大意:给出括号序列的递归定义:1、空序列2、如果S是括号序列,那么(S) [S]也是3、如果A和B是括号序列,那么AB也是给出一个串,添加最少的()[]使串变为括号序列,输出结果。 解题思路:一直不记得在哪里做过,不过只需要输出添加的括号数……比较经典的DP模型,

Dango's happy life 939

[ZOJ1460]The Partition of a Cake

ZOJ:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1460题目大意:有一块1000*1000的蛋糕,切几刀以后问切成了几块。题中说:"The intersections of the cut line

Dango's happy life 867
上一篇: [ZOJ1144][POJ1104] Robbery
下一篇: [ZOJ1391][POJ1436] Horizontally Visible Segments
program_shun
博客等级 码龄17年 10粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值