《算法竞赛进阶指南》0x49 T3 True Liars

这是一篇关于算法竞赛的博客,讲述了如何利用并查集和背包模型解决一个问题。题目涉及向岛上的居民询问其身份,通过回答判断天神和恶魔。文章介绍了模型转换、并查集的运用以及背包DP解决问题的方法,并提供了样例输入和输出。
摘要由CSDN通过智能技术生成

题目传送门

题目描述

一个岛上存在着两种居民,一种是天神,一种是恶魔。

天神永远都不会说假话,而恶魔永远都不会说真话。

岛上的每一个成员都有一个整数编号(类似于身份证号,用以区分每个成员)。

现在你拥有 n 次提问的机会,但是问题的内容只能是向其中一个居民询问另一个居民是否是天神,请你根据收集的回答判断各个居民的身份。

输入格式

输入包含多组测试用例。

每组测试用例的第一行包含三个非负整数 n,p1,p2,其中 n 是你可以提问的总次数,p1 是天神的总数量,p2 是恶魔的总数量。

接下来 n 行每行包含两个整数 xi,yi 以及一个字符串 ai,其中 xi,yi 是岛上居民的编号,你将向编号为 xi 的居民询问编号为 yi 的居民是否是天神,

ai 是他的回答,如果 ai 为 yes,表示他回答你“是”,如果 ai 为 no,表示他回答你“不是”。

xi,yi 可能相同,表示你问的是那个人自己是否为天神。

当输入为占据一行的 0 0 0 时,表示输入终止。

输出格式

对于每组测试用例,如果询问得到的信息足以使你判断每个居民的身份,则将所有天神的编号输出,每个编号占一行,在输出结束后,在另起一行输出 end,表示该用例输出结束。

如果得到的信息不足以判断每个居民的身份,则输出 no,输出同样占一行。

数据范围

1 ≤ x i , y i ≤ q 1 + q 2 , 1≤x_i,y_i≤q1+q2, 1xi,yiq1+q2,
0 ≤ n < 1000 , 0 ≤ p 1 , p 2 < 300 0≤n<1000,0≤p1,p2<300 0n<1000,0p1,p2<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值