http://www.lydsy.com/JudgeOnline/problem.php?id=3640

dp[i][j] 表示i滴血到达j的概率

dp[i][j] = Σ dp[i+val[i]][k]/d[k]

将第一维看做层次

那么同层之间需要高斯消元解决

对每一层都做一次是 hp*n^3

但是不同层次之间只有常数列是不一样的

记录第一次将系数矩阵消成上三角矩阵的过程

每次修改系数列,只模拟回代的过程

hp* n^2

#include<cstdio>
#include<cstring>
#include<iostream> using namespace std; #define N 151
#define M 5001
#define K 10001 int val[N]; int front[N],to[M<<],nxt[M<<],tot;
int d[N]; double a[N+][N+],b[N+];
struct node
{
int i;
double t;
}e[N][N];
int cnt[N]; double dp[K][N]; void read(int &x)
{
x=; char c=getchar();
while(!isdigit(c)) c=getchar();
while(isdigit(c)) { x=x*+c-''; c=getchar(); }
} void add(int u,int v)
{
to[++tot]=v; nxt[tot]=front[u]; front[u]=tot;
} void pre(int n)
{
double t;
for(int i=;i<=n;++i)
{
for(int j=i+;j<=n;++j)
{
t=a[j][i]/a[i][i];
for(int k=i;k<=n;++k) a[j][k]-=a[i][k]*t;
e[j][++cnt[j]].i=i;
e[j][cnt[j]].t=t;
}
}
} void gauss(int n,int m)
{
for(int i=n;i>=;--i)
{
for(int j=i+;j<=n;++j) b[i]-=a[i][j]*dp[m][j];
dp[m][i]=b[i]/a[i][i];
}
} int main()
{
int n,m,hp;
read(n); read(m); read(hp);
for(int i=;i<=n;++i) read(val[i]);
int u,v;
for(int i=;i<=m;++i)
{
read(u); read(v);
add(u,v); d[u]++;
if(u!=v) add(v,u),d[v]++;
}
for(int i=;i<=n;++i)
{
a[i][i]=;
if(val[i]) continue;
for(int j=front[i];j;j=nxt[j])
if(to[j]!=n) a[i][to[j]]-=1.0/d[to[j]];
}
pre(n);
for(int i=hp;i;--i)
{
memset(b,,sizeof(b));
if(i==hp) b[]=;
for(int j=;j<=n;++j)
if(val[j] && i+val[j]<=hp)
for(int k=front[j];k;k=nxt[k])
if(to[k]!=n) b[j]+=dp[i+val[j]][to[k]]/d[to[k]];
for(int j=;j<=n;++j)
for(int k=;k<=cnt[j];++k)
b[j]-=b[e[j][k].i]*e[j][k].t;
gauss(n,i);
}
double ans=;
for(int i=;i<=hp;++i) ans+=dp[i][n];
printf("%.8lf",ans);
}

bzoj千题计划291:bzoj3640: JC的小苹果的更多相关文章

  1. bzoj千题计划300:bzoj4823: [Cqoi2017]老C的方块

    http://www.lydsy.com/JudgeOnline/problem.php?id=4823 讨厌的形状就是四联通图 且左右各连一个方块 那么破坏所有满足条件的四联通就好了 按上图方式染色 ...

  2. bzoj千题计划196:bzoj4826: [Hnoi2017]影魔

    http://www.lydsy.com/JudgeOnline/problem.php?id=4826 吐槽一下bzoj这道题的排版是真丑... 我还是粘洛谷的题面吧... 提供p1的攻击力:i,j ...

  3. bzoj千题计划280:bzoj4592: [Shoi2015]脑洞治疗仪

    http://www.lydsy.com/JudgeOnline/problem.php?id=4592 注意操作1 先挖再补,就是补的范围可以包含挖的范围 SHOI2015 的题 略水啊(逃) #i ...

  4. bzoj千题计划177:bzoj1858: [Scoi2010]序列操作

    http://www.lydsy.com/JudgeOnline/problem.php?id=1858 2018 自己写的第1题,一遍过 ^_^ 元旦快乐 #include<cstdio> ...

  5. bzoj千题计划317:bzoj4650: [Noi2016]优秀的拆分(后缀数组+差分)

    https://www.lydsy.com/JudgeOnline/problem.php?id=4650 如果能够预处理出 suf[i] 以i结尾的形式为AA的子串个数 pre[i] 以i开头的形式 ...

  6. bzoj千题计划304:bzoj3676: [Apio2014]回文串(回文自动机)

    https://www.lydsy.com/JudgeOnline/problem.php?id=3676 回文自动机模板题 4年前的APIO如今竟沦为模板,,,╮(╯▽╰)╭,唉 #include& ...

  7. bzoj千题计划292:bzoj2244: [SDOI2011]拦截导弹

    http://www.lydsy.com/JudgeOnline/problem.php?id=2244 每枚导弹成功拦截的概率 = 包含它的最长上升子序列个数/最长上升子序列总个数 pre_len ...

  8. bzoj千题计划279:bzoj4591: [Shoi2015]超能粒子炮·改

    http://www.lydsy.com/JudgeOnline/problem.php?id=4591 最后的式子合并同类项 #include<cstdio> #include<i ...

  9. bzoj千题计划278:bzoj4590: [Shoi2015]自动刷题机

    http://www.lydsy.com/JudgeOnline/problem.php?id=4590 二分 这么道水题 没long long WA了两发,没判-1WA了一发,二分写错WA了一发 最 ...

随机推荐

  1. REST-framework快速构建API--权限

    我们在访问资源时,有些资源保密程度较高,需要特殊的人员才能访问.比如,获取公司的每日收入流水的API接口,只能CEO才能查看. 这时,我们就需要将资源设定权限了. REST-framework实现如下 ...

  2. stl源码剖析 详细学习笔记 set map

    // //  set map.cpp //  笔记 // //  Created by fam on 15/3/23. // // //---------------------------15/03 ...

  3. Ubuntu命令行运行C程序和C++程序

    首先Ctrl + T 打开一个终端,cd到你建立C/C++文件的目录下. 下面以建立 helloc.c 和 hellocpp.cpp 进行演示 vim helloc.c 按 i 进入插入操作,然后写C ...

  4. live555学习(一)通读Makefile编译live555

    live555学习(一)通读Makefile编译live555 live555 编译live555 学习开源 live555学习(一)通读Makefile编译live555 前言 live555简介 ...

  5. asp.net 网页拉伸 到300%不变形方法一

    网页拉伸到300%控件和表格不会出现太大变形 方法: 1.对主页面采用百分比宽度(Width="100%") 2.对于表格使用百分比宽度,包括表格宽度和表格中顶端td宽度 3.对t ...

  6. AIX上安装配置DB2

    在2台P550数据库主机上安装DB2 V8.2,两台数据库主机间进行数据库HA配置,实现数据库双机互备. 本文档编写以磁盘大小360G,数据库名CRAMS_JS为例. 设备准备 请系统管理员协助划分D ...

  7. Beta 冲刺 四

    团队成员 051601135 岳冠宇 031602629 刘意晗 031602248 郑智文 031602330 苏芳锃 031602234 王淇 照片 项目进展 岳冠宇 昨天的困难 数据交换比较复杂 ...

  8. PAT 甲级 1022 Digital Library

    https://pintia.cn/problem-sets/994805342720868352/problems/994805480801550336 A Digital Library cont ...

  9. PAT 1063 计算谱半径

    https://pintia.cn/problem-sets/994805260223102976/problems/994805267860930560 在数学中,矩阵的“谱半径”是指其特征值的模集 ...

  10. TCP/IP之大明内阁 转

    原创: 刘欣 码农翻身 2016-11-02 本文是<TCP/IP之大明王朝邮差>的前传,  讲一讲大明内阁的各位大人是怎么设计TCP/IP网络的.大明天启年间,  明熹宗朱由校醉心于木工 ...