题目名称 2443. [HZOI 2016]MC之旅:逃离基友
输入输出 T3_.in/out
难度等级 ★★★
时间限制 500 ms (0.5 s)
内存限制 256 MiB
测试数据 10
题目来源 Gravatar_Itachi 于2016-08-16加入
开放分组 全部用户
提交状态
分类标签
2-SAT HZOI
分享题解
通过:44, 提交:122, 通过率:36.07%
Gravatarztx 100 0.088 s 1.12 MiB C++
Gravatarztx 100 0.102 s 1.00 MiB C++
Gravatar半汪 100 0.110 s 1.11 MiB C++
Gravatar哒哒哒哒哒! 100 0.116 s 1.31 MiB C++
Gravatarkemoto 100 0.121 s 1.46 MiB C++
Gravatarkemoto 100 0.128 s 1.46 MiB C++
GravatarL_in 100 0.134 s 0.79 MiB C++
Gravatar可以的. 100 0.144 s 1.17 MiB C++
Gravatar可以的. 100 0.153 s 1.17 MiB C++
GravatarAntiLeaf 100 0.181 s 0.63 MiB C++
关于 MC之旅:逃离基友 的近10条评论(全部评论)
奇怪
Gravatar┭┮﹏┭┮
2023-10-20 17:13 11楼
Gravatarkemoto
2017-10-19 11:13 10楼
回复 @shy :
能给个相关博客的链接吗
///////////////////////////////////////////////////////////////////////
好吧,算了
GravatarLJZYDDLDRP
2017-04-11 14:39 9楼
规模壮观的switch...
GravatarAlbert S. Chang
2017-04-09 11:24 8楼
%%%
Gravataryourfather
2017-03-27 17:53 7楼
2-SAT模板题
Gravatar_Itachi
2017-02-17 20:13 6楼
Gravatarztx
2017-02-14 19:46 5楼
用暴搜过了2-sat,纪念一下>_<
更多详情可以关注下shyakocat自创的算法『超shy剪枝法』-SSCS(Super Shy Cut Solution),
大致思路是任何题目都可以看做暴搜,用模拟或数据结构剪掉最差的两个极端使出题人难以用数据卡掉,
虽然在图论方面基本无法找到两个极端进行剪枝,但一般图论数据也比较难出,大部分应该是随机,所以算是剪枝了一个极端就水过了吧。
除此之外shyakocat还曾用暴搜(剪一个极端)过了二分图哦>_<
Gravatarshy
2016-12-20 22:31 4楼
毒瘤……
GravatarRapiz
2016-11-01 17:55 3楼
2-SAT太特么难了......
玛德纸张
GravatarAntiLeaf
2016-08-25 14:23 2楼

2443. [HZOI 2016]MC之旅:逃离基友

★★★   输入文件:T3_.in   输出文件:T3_.out   简单对比
时间限制:0.5 s   内存限制:256 MiB

【题目描述】


自从miner在上次被好友们陷害后,顿时感到前途一片黑暗,于是miner逃离了基友们,独自来到了地下挖矿。但是基友们突然发现miner不见后,全体出动要把miner抓捕回来。于是miner只得一边提防着基友们一边挖矿,还需要无时无刻地小心基友们布下的陷阱。基友们购买了领域中的各种陷阱,在miner周围布下了层层陷阱;但是都被miner一一躲过。于是,基友们下了狠心,在miner挖矿的矿洞里布下了两排钻石矿,但是,这两排钻石矿又连接着非常复杂的机关。而在miner挖矿的时候,他发现这两排钻石矿,深知天上不会掉馅饼的miner马上就推断出这是基友们的陷阱,但是miner还是不想放弃这么多钻石也不想被基友发现,于是miner决定了,每一列的两个钻石矿中,miner需要且只能挖走一个。但是,这个机关远没有那么简单,miner死了一半多的脑细胞,终于验算出了所有不惊动基友们时需要满足的条件。也就是说,只有当满足所有的这些条件时,miner才可以成功得到钻石,否则,He will die…..

这些条件分别有:

1.

i       //表示编号为i的钻石矿一定需要挖去

2.

not i   //表示编号为i的钻石矿一定不可以被挖去

3.

i and j

4.

i and (not j)

5.

i or j

6.

i or (not j)

7.

not (i and j)

8.

not (i or j)

9.

i xor j //表示异或,即当i=true,j=false或i=false,j=true是表达式为true

10.not (i xor j)

11.i xor (not j)

12.(not i) or (not j)


【输入格式】


多组测试数据

   每组测试数据第一行包括两个正整数n,m表示有n对钻石矿,m组限制

   接下来有m行,每行描述一种限制。



【输出格式】


只有当miner列出的所有表达式的值均为真的时候,才算miner成功;

(注意:假如说我们挖去了i这个矿,那么我们称i=true)

如果miner可以成功,则按字典序输出字典序最小的方案;

否则输出”die”(不包括双引号)


【样例输入】

4 6

3 1 4

5 5 6

5 5 7

2 3

9 1 2

9

5 4

【样例输出】

1 4 6 7

【提示】


所以,满足条件的选择就是

1 4 6 7

数据范围

对于20% 正整数 n <= 1,m <=2;

对于100% 正整数 n,m<= 10000;


【来源】

lyc