3.22做题记录

P2447 [SDOI2010] 外星千足虫

高斯消元解异或方程组模板
代码

P3211 [HNOI2011]XOR和路径

考虑拆位分别计算, f u f_u fu表示 u 到 n 路径的异或 这一位为 1 的概率
方程很容易列出来, 高斯消元即可
代码

P3232 [HNOI2013] 游走

第一反应是考虑每个边的期望经过次数,但是边能够达到 n 2 n^2 n2级别,无法承受

考虑先求 f u f_u fu表示 u 点的期望经过次数,这个可以通过高斯消元解出来,然后再利用这个 f 去计算每个边的期望次数 g i = f u d u + f v d v g_i=\frac{f_u}{d_u}+\frac{f_v}{d_v} gi=dufu+dvfv

然后按照从大到小进行排序编号

代码

P3265 [JLOI2015]装备购买

实数线性基,类似高斯消元的实现

eps不要设得太小,有点卡精度

代码

P3812 【模板】线性基

最大子集异或和:考虑x与线性基中异或得到的最大值,贪心的处理每一位,如果异或上这个线性基的值更大就异或,否则不异或

代码

P3857 [TJOI2008]彩灯

2^(线性基内元素个数)

P3292 [SCOI2016]幸运数字

线性基的合并是两只log的暴力合并
使用点分治来解决,每次回答经过分治重心的询问,在dfs这个树的时候求出分治重心到每个点的线性基,那么对于一个询问就是合并两个线性基
最终复杂度为两个log

代码

P4151 [WC2011]最大XOR和路径

考虑先找到一条1-n的路径,那么对于每个支出来的环,可以直接异或上这个环的贡献,因为支出来的那部分边会被一来一回走两次,不产生贡献

也就是把所有环的权值扔进线性基,随便找一个1-n的路径去求最大异或和

为什么可以随便选一个1-n的路径?因为如果有多个1-n的路径,必然构成环,被加入到了线性基,也就是说各种情况都会被考虑到
代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值