题目来源:UVa 10828 Back to Kernighan-Ritchie

题意:从1開始 每次等概率从一个点到和他相邻的点 有向 走到不能走停止 求停止时每一个点的期望

思路:写出方程消元 方程有唯一解 多解 无解的情况 有环 一直再环里无法停止算无穷大 从1不能到的点期望为0

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
#include <cmath>
using namespace std;
const int maxn = 110;
const double eps = 1e-8;
typedef double Matrix[maxn][maxn];
vector <int> G[maxn];
int d[maxn];
int inf[maxn];
void gauss_jordan(Matrix A, int n)
{
int i, j, r, k;
for(i = 0; i < n; i++)
{
r = i;
for(j = i+1; j < n; j++)
if(fabs(A[j][i]) > fabs(A[r][i]))
r = j;
if(fabs(A[r][i]) > eps)
{
if(r != i)
for(j = 0; j <= n; j++)
swap(A[r][j], A[i][j]);
for(k = 0; k < n; k++)
{
if(k != i)
{
for(j = n; j >= i ; j--)
{
A[k][j] -= A[k][i]/A[i][i] * A[i][j];
}
}
}
}
}
}
Matrix A;
int main()
{
int cas = 1;
int n;
while(scanf("%d", &n) && n)
{
memset(d, 0, sizeof(d));
for(int i = 0; i < n; i++)
G[i].clear();
int u, v;
while(scanf("%d %d", &u, &v) && (u||v))
{
u--;
v--;
G[v].push_back(u);
d[u]++;
}
memset(A, 0, sizeof(A));
for(int i = 0; i < n; i++)
{
A[i][i] = 1;
for(int j = 0; j < G[i].size(); j++)
A[i][G[i][j]] -= 1.0 / d[G[i][j]];
if(i == 0)
A[i][n] = 1;
}
gauss_jordan(A, n); memset(inf, 0, sizeof(inf));
for(int i = n-1; i >= 0; i--)
{
if(fabs(A[i][i]) < eps && fabs(A[i][n]) > eps)
inf[i] = 1;
for(int j = i+1; j < n; j++)
if(fabs(A[i][j]) > eps && inf[j])
inf[i] = 1;
}
int q;
scanf("%d", &q);
printf("Case #%d:\n", cas++);
while(q--)
{
int x;
scanf("%d", &x);
x--;
if(inf[x])
{
puts("infinity");
continue;
}
if(fabs(A[x][x]) < eps)
{
puts("0.000");
continue;
}
printf("%.3lf\n", A[x][n] / A[x][x]);
}
}
return 0;
}

UVa 10828 Back to Kernighan-Ritchie 高斯消元+概率DP的更多相关文章

  1. BZOJ 1778: [Usaco2010 Hol]Dotp 驱逐猪猡 [高斯消元 概率DP]

    1778: [Usaco2010 Hol]Dotp 驱逐猪猡 题意:一个炸弹从1出发p/q的概率爆炸,否则等概率走向相邻的点.求在每个点爆炸的概率 高斯消元求不爆炸到达每个点的概率,然后在一个点爆炸就 ...

  2. BZOJ 2337: [HNOI2011]XOR和路径 [高斯消元 概率DP]

    2337: [HNOI2011]XOR和路径 题意:一个边权无向连通图,每次等概率走向相连的点,求1到n的边权期望异或和 这道题和之前做过的高斯消元解方程组DP的题目不一样的是要求期望异或和,期望之间 ...

  3. LightOJ 1151 - Snakes and Ladders 高斯消元+概率DP

    首先来个期望的论文,讲的非常好,里面也提到了使用线性方程组求解,尤其适用于有向图的期望问题. 算法合集之<浅析竞赛中一类数学期望问题的解决方法> http://www.lightoj.co ...

  4. Broken robot CodeForces - 24D (三对角矩阵简化高斯消元+概率dp)

    题意: 有一个N行M列的矩阵,机器人最初位于第i行和第j列.然后,机器人可以在每一步都转到另一个单元.目的是转到最底部(第N个)行.机器人可以停留在当前单元格处,向左移动,向右移动或移动到当前位置下方 ...

  5. [luogu2973]driving out the piggies 驱逐猪猡【高斯消元+概率DP】

    看到题面的那一刻,我是绝望的ORZ 图论加概率期望加好像不沾边的高斯消元???我人直接傻掉 还没学过概率期望的我果断向题解屈服了(然后还是傻掉了两节课来找线性方程.. Description 奶牛们建 ...

  6. light oj 1151 - Snakes and Ladders 高斯消元+概率DP

    思路: 在没有梯子与蛇的时候很容易想到如下公式: dp[i]=1+(∑dp[i+j])/6 但是现在有梯子和蛇也是一样的,初始化p[i]=i; 当有梯子或蛇时转移为p[a]=b; 这样方程变为: dp ...

  7. bzoj 2337 高斯消元+概率DP

    题目大意: 每条路径上有一个距离值,从1走到N可以得到一个所有经过路径的异或和,求这个异或和的数学期望 这道题直接去求数学期望的DP会导致很难列出多元方程组 我们可以考虑每一个二进制位从1走到N的平均 ...

  8. uva 1560 - Extended Lights Out(枚举 | 高斯消元)

    题目链接:uva 1560 - Extended Lights Out 题目大意:给定一个5∗6的矩阵,每一个位置上有一个灯和开关,初始矩阵表示灯的亮暗情况,假设按了这个位置的开关,将会导致周围包含自 ...

  9. uva 10808 - Rational Resistors(基尔霍夫定律+高斯消元)

    题目链接:uva 10808 - Rational Resistors 题目大意:给出一个博阿含n个节点,m条导线的电阻网络,求节点a和b之间的等效电阻. 解题思路:基尔霍夫定律,不论什么一点的电流向 ...

随机推荐

  1. 了解什么是WebLogic Server 多数据源(Multi-DataSource)

      1. 什么是多数据源 我们知道配置WebLogic Server集群时一定要配置一个单一接入点(例如:Apache或F5),这样客户端只要访问这个单一入口点就可以了.对于客户来说,就好象访问一台服 ...

  2. MFC中 用Static控件做超链接(可以实现变手形、下划线、字体变色等功能)

    1.新建一个基于对话框的工程MyLink,在对话框中拖一个Static控件,ID可改为IDC_SLink. 2.在头文件中添加成员变量: private: CRect m_Rect; CFont* m ...

  3. ylb:SQL 视图(View)基础

    ylbtech-SQL Server: SQL Server-SQL 视图(View)基础 SQL 视图(View)基础. 1,ylb:视图(View)基础返回顶部 -- ============== ...

  4. 【DQ冰淇淋】—— Babylon 冰淇淋三维互动营销项目总结

    前言:在学习过Babylon.js基础之后,我上手的第一个网页端3D效果制作项目就是‘DQ冰淇淋’.这个小项目应用到了Babylon最基础的知识,既可以选味道,选点心,也可以旋转.倒置冰淇淋,互动起来 ...

  5. JavaScript replace 回调函数用法

    params.query = params.query.replace(/[\+\-\&\|\!\(\)\{\}\[\]\^\"\~\*\?\:\\]/g,function(a){ ...

  6. VueJS锚定

    锚定函数 指令定义函数提供了几个钩子函数(可选): bind: 只调用一次,指令第一次绑定到元素时调用,用这个钩子函数可以定义一个在绑定时执行一次的初始化动作. inserted: 被绑定元素插入父节 ...

  7. websocket-client connection( Long-lived )

    参考:https://pypi.python.org/pypi/websocket-client/ import websocket import thread import time def on_ ...

  8. AMD和Intel的CPU对比

    http://www.lotpc.com/yjzs/5825.html 推荐文章:小白看AMD与intel的cpu架构,AMD慢的原因 CPU核心的发展方向是更低的电压.更低的功耗.更先进的制造工艺. ...

  9. DisplayPort的时钟隐藏和时钟恢复

    转:DisplayPort的时钟隐藏和时钟恢复 无时钟线的视频数据传输是DP协议的一大特点,将时钟信号隐藏在数据中是传输协议的设计趋势.时钟恢复技术也是DP芯片设计的关键技术.在这说一下在发送端时钟是 ...

  10. Controller跳转到外部链接

    return new ModelAndView(new RedirectView("http://www.baidu.com")); 用了这个方法之后,方法的返回值也会变成mode ...