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. 机器视觉及图像处理系列之二(C++,VS2015)——图像级的人脸识别(1)

    接上一篇,一切顺利的话,你从github上clone下来的整个工程应该已经成功编译并生成dll和exe文件了:同时,ImageMagic程序亦能够打开并编辑图像了,如此,证明接下来的操练你不会有任何障 ...

  2. docker教程——docker镜像打包上传

    在开始使用URLOS进行docker应用开发之前,我们先来了解一下docker镜像的打包方法.首先,安装URLOS,安装完成之后,docker也随之安装到了主机里.执行以下命令安装URLOS: cur ...

  3. 人类又被AI碾压,这次是星际争霸

    还记得2017年,那个血洗围棋界的“阿尔法狗”吗?     这个由谷歌旗下 DeepMind 公司开发的 AI ,对阵世界顶尖围棋选手,打出完全碾压式的战绩: AlphaGo vs. 樊麾 - 5 : ...

  4. EOS开发基础之六:使用cleos命令行客户端操作EOS——智能合约之eosio.msig和eosio.system

    上一节我们搞了老半天,也没整明白Exchange这个合约到底干啥用的.就它官方提供的说法,是用于货币的创造和交易.我没整明白,所以去看了下代码,发现代码头文件里面有下面这段话: This contra ...

  5. one team

    Double H Team 1.队员 王熙航211606379(队长) 李冠锐211606364 曾磊鑫211606350 戴俊涵211606359 聂寒冰211606324 杨艺勇211606342 ...

  6. 《Linux内核分析》第一周学习报告

    第一周:计算机是如何工作的 姓名:王玮怡  学号:20135116 第一节 存储程序计算机工作模型(冯诺依曼体系结构) IP指向的内存地址,取指令执行,完成后,IP值自加一,取下一条指令再执行. AP ...

  7. Team Work Ⅱ

    Regal-Lighting团队设计 分工思考 本次大作业我的分工定位是:Unit及子类,主要设计实现建筑类的功能. 首先王者光耀这款游戏所需要的建筑分为三类: 1.防御塔:有一定的血量,血量为0时破 ...

  8. 第二个spring冲刺第8天

    今天我们团队分别安排了不同的任务,分别是1人程序编写,1人检查bug,1人负责客户体验,还有我们的总负责人王俊凯同学负责各个部分的协调.今天程序有了新的调整,但是功能还是没有完全做出来,不过还在开发途 ...

  9. 基于 Java Web 的毕业设计选题管理平台--测试报告与用户手册

    一.测试报告 1.兼容性测试 功能 描述 效果 Chrome浏览器 FireFox浏览器 IE浏览器 war 端浏览器 管理员登录 管理员用户登录功能 弹出“登录成功”对话框,进入到毕业设计选题管理平 ...

  10. mac下mongoDB的使用

    第一步: 我们在网上找到mongoDB的安装文件包,下载下来然后放在mac系统的指定位置,如图所示: 第二步:打开数据库服务端 我们在bin目录下执行mongod这个命令: 首先cd到bin目录 然后 ...