2022/3/22

7 : 30 − 8 : 30 7:30 - 8:30 7:308:30
T 1 T1 T1 T 1 T1 T1第一眼看的时候确实有点摸不着头脑 。 但是仔细分析后就会发现这其实是道结论题 。 先说一波结论 : 答案只会是 − 1 -1 1 , 1 1 1 2 2 2 。 我们来根据二进制按位考虑 , 2 k 2^k 2k % 3 3 3要么等于 1 1 1 , 要么等于 2 2 2 , 我们先让 1 1 1 2 2 2内部消化 , 即 3 3 3 1 1 1或者 3 3 3 2 2 2拼一起 , 然后考虑最后剩下了几个 2 2 2和几个 1 1 1 。 如果两者都还有剩余 , 那么我们就让 1 1 1 2 2 2匹配 。 那么最后就只剩下 1 1 1或者只剩下 2 2 2 。 分类考虑一下 :

  1. 剩下 1 1 1 1 1 1 : 判断一下有没有 2 2 2 , 如果有 , 就让这个 1 1 1 2 2 2拼一起输出去 , 如果没有 , 那么在合法的情况下一定有 > = 3 >=3 >=3 1 1 1 , 随便找两个 1 1 1输出 。
  2. 剩下 2 2 2 1 1 1 :判断一下有没有 > = 3 >=3 >=3 1 1 1 , 如果有 , 找一个 1 1 1输出 ; 如果没有 , 那么就找两个 2 2 2输出 。
    只剩下 2 2 2的情况其实差不多 , 还是分类考虑一下就好了 。

8 : 30 − 10 : 00 8:30 - 10:00 8:3010:00
看到 T 2 T2 T2本来以为和高位前缀和有关 , 但是并没有看出什么 , 脑不出来 , 弃了 。
10 : 00 − 11 : 00 10:00 - 11:00 10:0011:00
T 3 T3 T3 45 p t s D P 45ptsDP 45ptsDP 还是不难想的吧 , 维护 f [ i ] [ x ] [ y ] f[i][x][y] f[i][x][y]表示有 x x x个人往左走 , y y y个人往右走的概率 , 然后考虑转移 , 假如当前的人往右走 , 那么直接假如 , 并不会对原来的状态造成什么影响 。 如果不是 , 考虑他能干掉多少人 , 然后乘上概率转移 。我们可以再脑一下 , 因为转移中有用的状态并不是很多 , 所以可以用 S T L STL STL中的 q u e u e queue queue来维护这个过程 。 反正能过 60 p t s 60pts 60pts的 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值