高斯消元总结

1426. 游走 (walk)

题意

一个无向连通图,顶点从 1 编号到 N,边从 1 编号到 M

Z 在该图上进行随机游走,初始时小 Z 1 号顶点,每一步小 Z 以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边的编号的分数。当小 Z 到达 N 号顶点时游走结束,总分为所有获得的分数之和。

现在,请你对这 M 条边进行编号,使得小 Z 获得的总分的期望值最小。

30%的数据满足N≤10

100%的数据满足2≤N≤500且是一个无向简单连通图。

题解

要对边进行编号使总分期望最小,就按贪心的思想,把小的编号给期望经过次数多的边,于是问题转化为求每条边经过的期望次数。
又因为一条边的期望次数也不好直接求,考虑先算每个点的期望经过次数。
显然n为1,剩下的点可考虑是从哪个点来的,可按度数等概率转移,高斯消元即可求得。
于是对于边,肯定是两个点互相走到时会经过,加上两个点分别的期望次数/度数即可。

1304.XOR和路径(xor)

题意

给定一个无向连通图,其节点编号为1N,其边的权值为非负整数。

试求出一条从1号节点到N号节点的路径,使得该路径上经过的边的权值的“XOR最大。该路径可以重复经过某些节点或边,当一条边在路径中出现多次时,其权值在计算“XOR时也要被重复计算相应多的次数。

直接求解上述问题比较困难,于是你决定使用非完美算法。具体来说,从1号节点开始,以相等的概率,随机选择与当前节点相关联的某条边,并沿这条边走到下一个节点,重复这个过程,直到走到N号节点为止,便得到一条从1号节点到N号节点的路径。显然得到每条这样的路径的概率是不同的并且每条这样的路径的“XOR也不一样。

现在请你求出该算法得到的路径的“XOR的期望值。


【样例1解释】

1/2的概率直接从1号节点走到2号节点,该路径的“XOR3

1/4的概率从1号节点走一次1号节点的自环后走到2号节点,该路径的“XOR1

1/8的概率从1号节点走两次1号节点的自环后走到2号节点,该路径的“XOR3......

依此类推,可知“XOR的期望值为:3/2+1/4+3/8+1/16+3/32+......=7/3,约等于2.333

【数据规模】

输入的数据保证图连通.

30%的数据满足N≤30

100%的数据满足2≤N≤100M≤10000

但是图中可能有重边或自环。

题解

对于异或问题先考虑拆位,对于每一位,只关心1-n路径上边的异或和是否为1。
于是考虑DP,记在u时异或和为1的概率。但要记1-u还是u-n呢?如果记1-n的话,其实转态是不明确的,因为一个点可能经过多次,比如一开始在1号点,之后又绕回来了,这样根本不知道记的是哪个时间的状态,于是异或和为1的概率也不明确,无法转移。注意到走到n就停止了,这样把转态设计为u-n的异或和为1的概率,就是一个明确、可转移的状态了,同样高斯消元即可求得。

1846. 和谐矩阵(matrix)

题意

构造一个n*m的01矩阵,满足每个点和其周围所有点的异或和为0。
n,m<=40

题解

直接构造没有思路,考虑题目的要求,发现就是一些值的异或和为0,于是列出方程可高斯消元解出,但效率是 O ( n 6 ) O(n^{6}) O(n6)的。
考虑如何减掉一些未知数,因为题目的限制是有规律的,考虑利用这样的规律,发现每一个数可以有前两行的数确定,于是只要确定第一行的数,就可确定这个矩阵。
考虑如何列出第一行未知数的方程,在n+1行限制比较方便,n+1行的所有元素都必须为0,依此可列出方程求解。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值