一. 伟大的代数
我记得在初中奥数课时候, 老师经常提到的一句话是:“大胆地设未知数, 最后总会消去的。”
后来这种方法屡试不爽(其实只是因为初中的奥数不怎么难的缘故吧), 而且代数另一个方便的地方在于减少我们运算的难度(一般只在最后一步才需要运算)。
关于高斯消元, 其实是和普通的消元法没什么大的区别, 仅仅在于“使消元的过程标准化”。
二. 无限的循环
现在有一个小故事: 有两个能够反射一定百分比的光能的镜子(也就是能吸收一部分), 其反射的能量会到达另一面镜子。 现在我们向其中一面镜子A发射总能量为n的光能, 设镜子A的反射能力为rA, 镜子B为rB(也就是能吸收(100%-rA)的能量)。 求最后每个镜子所吸收的能量。
这是一个可以无限进行下去的过程, 但这个问题却有可以算出的解。
设f(A), f(B)为镜子最后吸收的总能量, 因为镜子B吸收的能量必然为f(A) * rA(A镜子吸收了f(A)的能量, 就一定会反射相应量的能量给B, 且这是B唯一的能量来源)。 而镜子A吸收的能量为n + f(B) * rB。 (和B一样, 只不过A有个额外的能量来源)
我们得出一个方程组。
解之即可。
三. 阴阳相生
来讲讲HNOI2013的其中一题, 其实这是本篇随笔的主题。
给个链接, 嗯嗯, BZOJ其实是个好东西。
http://61.187.179.132/JudgeOnline/problem.php?id=3143
题目:
一个无向连通图,顶点从1编号到N,边从1编号到M。
小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边的编号的分数。当小Z 到达N号顶点时游走结束,总分为所有获得的分数之和。
现在,请你对这M条边进行编号,使得小Z获得的总分的期望值最小。
这题目比较明显的是列方程组求解。 但我要记录的是我走入的一个误区。
一开始的想法是有n个点提供了n个方程, 而要给m条边赋值。 n个方程我能消去n个未知量。
f(i)表示从第i个点出发停止后的得到的期望总分。 通俗一点说吧, 假设点i的边度为d, 通过e连接到点j, 那么由于在i的时候是等概率选择目标进行游走的, 那么点j对于i的贡献是。 f(i)的表达式为:
其中i与j通过ej连接。
当我们消去除f(1)以外的所有关于点的未知量的时候, 我们得到一个关于f(1)的, 每条边拥有一个系数的表达式。
按每条边的系数“贪心”地赋值, 即可得到答案。
但……很可惜……运用高斯消元会超时, 时间是OIer的死亡线啊!
命运即转化
请不要鄙视我的第一想法……现在我们来转化一下。
其实上面的思路和求“每条边通过的次数的期望值”是差不多的。 那么我们考虑“每个点通过的次数的期望值”。
方程我不打算细细讲, 应该能找到很多很好的解释。
如果我们得到了每个点的期望经过次数, 每条边必然是从其两端的节点走入和走出, 从一端走入的次数为该点的期望值与该点的边度的比值。
随笔真的写成随笔了……好随便。 如果再有想说的, 慢慢补充。
原文:http://www.cnblogs.com/aceflame/p/3594894.html