题解 洛谷 P10315 [SHUPC 2024] 原神,启动!

本文介绍了如何通过模意义下的高斯消元方法解决原神游戏中关于方块传动关系的问题,通过构建和求解线性方程组来确定每个方块的击打次数,确保解决方案符合实际游戏逻辑,包括处理负数解和模运算规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安利一波我的博客

题目传送门 P10315

被原神策划折磨的最惨的一集

本题考察模意义下的高斯消元

前置芝士:高斯消元、乘法逆元、快速幂


思路分析

根据方块之间给出的传动关系以及序列初始状态,求得一组解,使得按照此方案操作后的方块序列的状态与题目要求的一致。

定义传动关系 n → a 1 , a 2 n\rightarrow a_1,a_2 na1,a2 为:“击打 n n n 号方块, n , a 1 , a 2 n,a_1,a_2 n,a1,a2 均同时从当前状态迁移到下一个状态”。

因此我将样例输入 #1 转化为如下的示意图:

(红线为每个方块的末状态,初始朝向均为 0 0 0

显然我们需要列出方程求解每个方块的击打次数。

从左到右,设每个方块需要击打的次数分别为 x , y , z x,y,z x,y,z 。根据传动关系—— 1 1 1 号方块仅能被自己、以及 2 2 2 号方块带动; 2 2 2 号方块仅能被自己、以及 3 3 3 号方块带动; 3 3 3 号方块仅能被自己、和 1 , 2 1,2 1,2 号方块带动。又因为状态每次只会更新 1 1 1 个单位,再算上每个方块的初始和终点朝向,就可以列出以下方程组:

{ x + y = 0 y + z = 2 x + y + z = 1 \begin{cases} x+y=0 \\y+z=2 \\x+y+z=1 \end{cases} x+y=

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值