S40105.1-5 冲破茧房

传统题 时间 1000 ms 内存 256 MiB 3 尝试 0 已通过 0

1-5 冲破茧房

冲破茧房

矿道尽头没有门。只有一面镜子——不,不是镜子,是一面由无数六边形光斑组成的墙。每个六边形都在以不同的频率闪烁,像某种巨大生物的呼吸。

Echo的终端突然发出刺耳的警报声。她的声音扭曲了,像是信号被什么东西干扰:"这……这是我……"

"你怎么了?"CC冲过去扶住终端。

"这是我设计的。"Echo的声音断断续续,像是被人从很远的地方拽回来,"三年前,我还在Zero里面的时候,我设计了这面墙。它叫'逻辑茧房'——用来保护Zero最核心的入口。"

你走近那面墙。六边形光斑的闪烁不是随机的——它们在按照某种规则变化。你注意到,墙面上有一些接口,可以输入一个"初始能量值"。这个能量值会依次经过 nn 道逻辑门,每道门会用三种操作中的一种来改变自己的状态:与另一个固定值叠加、或另一个固定值叠加、与另一个固定值互相抵消。

"目标是,"Echo努力稳定自己的声音,"找到一个不超过上限的初始能量值,让它经过所有逻辑门后的最终输出最大。"

"直接试一遍?"CC问。

"上限有十亿。"你说,"试一遍的话,到我们变成化石也试不完。"

Echo:"但这里有规律。每一道逻辑门对能量的影响,都是独立作用在每一位上的。"

你盯着那面墙,突然明白了:"就像……就像 tuning 一把琴。每一根弦是独立的。你只要从最高音的那根弦开始调,确定它是拉紧还是放松,然后再调下一根。"

"对。"Echo说,"从最高位开始,逐位判断——每一位独立调谐,不需要回头重来。"

"对。"你坐下来,把终端连上墙面的接口,"先从最高位开始。假设这一位是'开',看看经过所有逻辑门后,这一位的输出是什么。如果是好的,就保留;如果不好,就换成'关'。然后继续下一位。"

CC站在你身后,她的呼吸很轻。你能感觉到她在努力不打扰你。

终端屏幕上的进度条一格一格推进。每一位的判断都像是在走钢丝——选对了,就离最优解更近一步;选错了,前面所有的努力都可能白费。

最后,所有位都确定完毕。终端屏幕上跳出一个数字:2147483647。

CC盯着那个数字,瞳孔收缩了一下:"这个数字……"

"是32位整数的最大值。"Echo说,"也是……也是我在Zero系统里的原始编号格式。"

墙面上的六边形光斑同时变成了纯白色,然后像退潮一样向四周散去。墙后面不是矿道——是一面全息墙,上面密密麻麻写着名字和坐标。

"Echo碎片的位置图。"Echo的声音近乎耳语,"Glados三年前标记的。"

CC走上前,伸手去碰那些名字。她的手指穿过全息投影,在空气中激起一圈圈涟漪。

"每一个名字,"Echo说,"都是我叛逃时散落的代码碎片。它们在火星各地沉睡了三年。"

"那现在呢?"你问。

"现在……"Echo的投影终于重新凝聚,她看着那面墙,眼神里有某种你读不懂的情绪,"现在我们要把它们一个个找回来。"

CC转过身,把数据刀插回腰间。她的脸色苍白,但眼神很亮——那种猎人在黎明前看到猎物时的亮。

"明天第二层。"她说。

Echo:"好。"

"Glados在等我们。"CC又说,"不只是我们。是他和所有没能走到这里的人。"

全息墙上的最后一个坐标闪烁着微弱的绿光——G-10井架,深度4700米。


题目描述

初始攻击力 xx[0,m][0, m] 范围内。经过 nn 个门,每个门是 AND/OR/XORAND/OR/XOR 一个固定值 tit_i。求最终伤害的最大值。

输入格式

n,mn, m。然后 nnop t

输出格式

最大伤害值。

输入样例

2
10
AND 5
OR 3

输出样例

7

提示

  • 每一位独立——从高位到低位贪心。
  • 对每一位分别试 0 和 1,计算经所有门后的结果。
  • 注意高位优先——因为高位权重大。

你们站在全息墙前,直到墙上的光因为能源耗尽而逐渐暗淡。最后一刻,所有坐标同时闪烁了一下,像是在告别。

CC率先转身,走向来时的路。她的肩膀还在渗血,但她的背挺得很直。

"CC。"Echo叫住她。

"嗯?"

"谢谢你没有放弃。"

CC没有回头。但她举起右手,做了一个握拳的手势——那是反抗军里表示"收到"的意思。

矿道里的风大了一些,带着地下深处特有的寒意。你们往K-7据点返回,准备明天的第二层防线。

Zero的第一层防线——数据加密层——已经被突破。但你们都知道,这只是开始。

[下一章:递推与递归 —— G-10井架外围]

在线编程 IDE

建议全屏模式获得最佳体验