一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边的编号的分数.当小Z 到达N号顶点时游走结束,总分为所有获得的分数之和. 现在,请你对这M条边进行编号,使得小Z获得的总分的期望值最小. 总分的期望值=每条边的期望经过次数*边的编号 之和. 不论我们如何编号,每条边的期望经过次数是不会变的,要使得边权和的期望最小,只需要贪心地使期望次数和边权倒序对应即可.…
啊 我永远喜欢期望题 BZOJ 3143 游走 题意 有一个n个点m条边的无向联通图,每条边按1~m编号,从1号点出发,每次随机选择与当前点相连的一条边,走到这条边的另一个端点,一旦走到n号节点就停下.每经过一条边,要付出这条边的编号这么多的代价.现将所有边用1~m重新编号,使总代价的期望最小,求这个最小值. 题解 我们可以求出每条边的期望经过次数,然后贪心地让经过次数多的边编号小即可. 直接用边来列方程求经过次数似乎列不出来,我们借助点来列方程. 设x[u]为从某个点出发的次数的期望,v为与u…
题目链接 参考 远航之曲 把走每条边的概率乘上分配的标号就是它的期望,所以我们肯定是把大的编号分配给走的概率最低的边. 我们只要计算出经过所有点的概率,就可以得出经过一条边(\(u->v\))的概率\(P_{ei}\).用\(dgr[i]\)表示点\(i\)的度数,那么\[P_{ei}=\frac{P_u}{dgr[u]}+\frac{P_v}{dgr[v]}\] 每个点的概率怎么求呢?就是\[P_i=\sum_{(i,j)\in G}\frac{P_j}{dgr[j]}\] 用\(a[i][j…
假如我们知道了每条边经过的期望次数,则变成了一个显然的贪心.现在考虑如何求期望次数. 由于走到每个点后各向等概率,很显然一条边的期望次数可以与它的两个端点的期望次数,转化为求点的期望次数 考虑每个点对另个点的贡献,得到方程组,暴力高斯消元 注意走到最后一个点就结束了,所以相当于它不能有出边 #include <bits/stdc++.h> #define eps 1e-6 using namespace std; const int N = 1005; double a[N][N]; int…
先Tarjan缩点 强连通分量里用高斯消元外面直接转移 注意删掉终点出边和拓扑 #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> #include<queue> #include<vector> #define N 10010 #define M 1000010 using namespace std; typedef double D;…
和游走挺像的,都是将概率转成期望出现的次数,然后拿高斯消元来解. #include <bits/stdc++.h> #define N 23 #define setIO(s) freopen(s".in","r",stdin) using namespace std; double in[N],out[N],f[N*N][N*N]; int G[N][N],deg[N],idx[N][N],tot; void Gauss(int n) { int i,j…
传送门 显然只需要求出所有边被经过的期望次数,然后贪心把边权小的边定城大的编号. 所以如何求出所有边被经过的期望次数? 显然这只跟边连接的两个点有关. 于是我们只需要求出两个点被经过的期望次数. 对于一个点uuu,它被经过的期望次数f[u]=∑vf[v]/du[v]f[u]=\sum _v f[v]/du[v]f[u]=∑v​f[v]/du[v] 这是一个环上的递推式,我们可以用高斯消元解方程组. 代码: #include<bits/stdc++.h> #define N 505 #defin…
数据范围太大不能直接高斯消元, tarjan缩点然后按拓扑逆序对每个强连通分量高斯消元就可以了. E(u) = 1 + Σ E(v) / degree(u) 对拍时发现网上2个程序的INF判断和我不一样(他们2个的INF判断也不一样).....然而都A掉了....我觉得应该是他们写错了,我的做法应该没错的(正反2遍dfs,GDOI2015day1t1大冒险)(求打脸 -----------------------------------------------------------------…
一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边的编号的分数.当小Z 到达N号顶点时游走结束,总分为所有获得的分数之和. 现在,请你对这M条边进行编号,使得小Z获得的总分的期望值最小.   输入保证30%的数据满足N≤10,100%的数据满足2≤N≤500且是一个无向简单连通图. 做过一道类似的后感觉比较简单了 求$f[i]$到每个点的概率 $f[i]=\…
题目链接: (bzoj) https://www.lydsy.com/JudgeOnline/problem.php?id=3143 (luogu) https://www.luogu.org/problemnew/show/P3232 题解: 水题.考虑如何求每个点的期望经过次数: 要求\(1\)号点开始\(n\)号点结束,那么\(1\)号点一定一上来就会经过一次,\(n\)号点一共只会经过\(1\)次.因此对于\(1\)到\(n-1\)的每一个点可以列出一个方程,其中\(1\)号点的方程是\…