#P1071. [2025 实验室三面] 核电,轻而易举啊!
[2025 实验室三面] 核电,轻而易举啊!
核融合炉にさ 飛び込んでみたいと思う
真っ青な光 包まれて奇麗
——《炉心融解》
题目背景
GTNH(GT: New Horizons)是一款著名的Minecraft模组整合包。古明地恋学姐最近成为了一名GTNH员工,并和其他员工一起在基地中飞速发展,目前已经到达了IV的电压等级,并且搭起了一套完整的铂处理产线。
可是目前基地的发电量是无法承受住这如此庞大产线的消耗的,于是恋学姐准备搭建一套核电发电系统,以维持产线的供电需求。
但是核电这玩意,一定要经过严密的设计与计算,否则一个不注意,燃料棒产生的热量无法及时散出就会爆炸,恋学姐的基地就会化作一个大坑(Explosion!!!)
为了基地的安全,为了产线能运行下去,恋学姐要背负巨大的责任,她想到了擅长计算机的你,委托你编写一个计算核电布局的热量与发电量的程序,用于事先模拟学姐的设计,以免发生悲剧。
题目描述
GTNH中,核反应堆是一个极其复杂的发电装置,这里我们简化了许多操作,以方便计算。
整个核反应堆由一个核反应堆方块和四个核反应仓组成,搭建完成后,玩家可以打开核反应堆的GUI,往里面填充燃料棒等物品,以设计自己的核反应堆,如下图

反应堆的GUI是一个六行九列的网格,每个格子可以放置不同的组件(括号里的符号是在输入数据内的表示):
- 燃料棒(F):产生电力和热量的核心部件
- 红石散热片(R):吸收热量的基础冷却装置
- 金散热片(G):效果更好的冷却装置
- 钻石散热片(D):最强大的冷却装置
- 中子反射板(N):提升燃料棒发电效率的辅助装置
- 空位(.):空白位置
在放置好组件后,提供红石信号,核反应堆就可以开始运行,其中有几个重要的机制:
发电机制
这里我们仅考虑IC2电网规则,不考虑与GT电网的转换与传输
每个燃料棒格子都会产生电力,产生量由每个燃料棒的基础发电量、效率、中子量决定:
-
效率 = (棒数为当前格的燃料棒数)
-
中子量计算:
- 燃料棒自身提供等于其棒数的中子量
- 中子反射板会为周围的燃料棒提供等同于其棒数的中子量,相当于将燃料棒的中子量反射回去了。
-
发电量计算:
基础发电量 = 单棒基础发电量 × 效率 × 棒数 实际发电量 = 基础发电量 + 单棒基础发电量 × 周围中子量 × 棒数注意:这里我们假定所有单棒基础发电量均为100
热量产生机制
每个燃料棒都会产生热量,产生量由每个燃料棒的效率、周围发热邻居数决定:
-
发热效率 = 效率 + 周围发热邻居数(包括燃料棒和中子反射板)
(中子反射板参与燃料棒的发热邻居计数,但本身不发热)
-
发热量计算:
发热量 = 基础发热量 × (发热效率 × (发热效率 + 1)) × 棒数 ÷ 2注意:这里我们假定基础发热量为50
冷却机制
这里的冷却机制也进行了简化,名称和游戏里的不同,且只考虑吸热,无限耐久,不考虑使用热交换器
散热片负责吸收热量,吸收效果取决于其类型和周围燃料棒数量:
- 红石散热片:基础4点 + 每相邻燃料棒2点散热
- 金散热片:基础6点 + 每相邻燃料棒3点散热
- 钻石散热片:基础12点 + 每相邻燃料棒6点散热
运行机制
- 每游戏刻,所有组件同时工作
- 产生电量并累加到总电量
- 计算净热量变化,加到反应堆的堆温中
- 如果任何时候堆温超过10000点,反应堆就会瞬间爆炸!
恋学姐会给你她的反应堆设计方案,你需要判断在游戏刻内,反应堆是否会发生爆炸。
输入格式
第一行包含一个整数,表示运行的时间(游戏刻)
接下来行,每行个字符,表示反应堆的布局,组件符号表示见上面
最后行,每行个整数,表示每个格子中组件的数量,其中:
- 燃料棒每组个数
- 空气处
- 散热片与中子反射板
题目中所有邻居指上下左右四个方向的邻居
输出格式
如果在运行期间发生爆炸,输出 "Explosion!!!"(不含双引号)
如果运行时间结束,仍未发生爆炸,输出 “Stable”(不含双引号),并另起一行,输出总发电量
样例数据
3
.........
....N....
....FR...
.........
.........
.........
0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0
0 0 0 0 1 1 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
Stable
900
2
.........
...DND...
..GFFFG..
...DDD...
.........
.........
0 0 0 0 0 0 0 0 0
0 0 0 1 1 1 0 0 0
0 0 1 4 3 2 1 0 0
0 0 0 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
Stable
19200
1
.........
...NNN...
...FFF...
...FFF...
...NNN...
.........
0 0 0 0 0 0 0 0 0
0 0 0 1 1 1 0 0 0
0 0 0 4 4 4 0 0 0
0 0 0 4 4 4 0 0 0
0 0 0 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0
Explosion!!!
解释
下面是对样例1的解释:
- 运行时间 游戏刻。
- 仅有 1 个燃料棒格子,位置在第3行第5列(数量1);它的右侧是一个红石散热片R;上方是一个中子反射板 N。其余位置为空。
对于该燃料格(棒数 ):
- 效率(eff) = 1
- 计算周围中子量:
- 自身提供
- 有1个相邻的中子反射板,每个反射板再贡献
r,所以额外1
- 单棒基础发电量假定为 100:
- 基础发电量 =
- 实际发电量 = (每个游戏刻)
- 发热效率 发热量 = $50 × (fe × (fe + 1)) × \frac{r}{2} = 50 × (2×3) ×\frac{1}{2} = 150$(每个游戏刻)
- 散热片R吸热:(每个游戏刻)
单 tick 的净热量变化 = 热量储存增加情况:,均 < 10000,不会爆炸
总发电量 =
相关
在下列比赛中: