bzoj千题计划291:bzoj3640: JC的小苹果
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的小苹果的更多相关文章
- bzoj千题计划300:bzoj4823: [Cqoi2017]老C的方块
http://www.lydsy.com/JudgeOnline/problem.php?id=4823 讨厌的形状就是四联通图 且左右各连一个方块 那么破坏所有满足条件的四联通就好了 按上图方式染色 ...
- bzoj千题计划196:bzoj4826: [Hnoi2017]影魔
http://www.lydsy.com/JudgeOnline/problem.php?id=4826 吐槽一下bzoj这道题的排版是真丑... 我还是粘洛谷的题面吧... 提供p1的攻击力:i,j ...
- bzoj千题计划280:bzoj4592: [Shoi2015]脑洞治疗仪
http://www.lydsy.com/JudgeOnline/problem.php?id=4592 注意操作1 先挖再补,就是补的范围可以包含挖的范围 SHOI2015 的题 略水啊(逃) #i ...
- bzoj千题计划177:bzoj1858: [Scoi2010]序列操作
http://www.lydsy.com/JudgeOnline/problem.php?id=1858 2018 自己写的第1题,一遍过 ^_^ 元旦快乐 #include<cstdio> ...
- bzoj千题计划317:bzoj4650: [Noi2016]优秀的拆分(后缀数组+差分)
https://www.lydsy.com/JudgeOnline/problem.php?id=4650 如果能够预处理出 suf[i] 以i结尾的形式为AA的子串个数 pre[i] 以i开头的形式 ...
- bzoj千题计划304:bzoj3676: [Apio2014]回文串(回文自动机)
https://www.lydsy.com/JudgeOnline/problem.php?id=3676 回文自动机模板题 4年前的APIO如今竟沦为模板,,,╮(╯▽╰)╭,唉 #include& ...
- bzoj千题计划292:bzoj2244: [SDOI2011]拦截导弹
http://www.lydsy.com/JudgeOnline/problem.php?id=2244 每枚导弹成功拦截的概率 = 包含它的最长上升子序列个数/最长上升子序列总个数 pre_len ...
- bzoj千题计划279:bzoj4591: [Shoi2015]超能粒子炮·改
http://www.lydsy.com/JudgeOnline/problem.php?id=4591 最后的式子合并同类项 #include<cstdio> #include<i ...
- bzoj千题计划278:bzoj4590: [Shoi2015]自动刷题机
http://www.lydsy.com/JudgeOnline/problem.php?id=4590 二分 这么道水题 没long long WA了两发,没判-1WA了一发,二分写错WA了一发 最 ...
随机推荐
- 利用HOG+SVM实现行人检测
利用HOG+SVM实现行人检测 很久以前做的行人检测,现在稍加温习,上传记录一下. 首先解析视频,提取视频的每一帧形成图片存到磁盘.代码如下 import os import cv2 videos_s ...
- 关于Unity物理事件的执行顺序的最新理解
物体A: public class A:{ B b; void FixedUpdate(){ if(input.GetKeyDow(Keycode.I)) { collider.enable=fals ...
- eclipse中设置项目的编码方式
1.windows->Preferences...打开"首选项"对话框,左侧导航树,导航到general->Workspace,右侧Text file encoding ...
- 解决eclipse中mybatis的xml配置文件无代码提示问题
https://blog.csdn.net/IRainReally/article/details/81743506
- VSTS写单元测试
用VSTS写单元测试 许多应用程序都会用到“用户”类型,今天我要用的是ConsoleApplicatio ...
- CodeM Qualifying Match Q5
问题描述: 给定两个整数 l 和 r ,对于所有满足1 ≤ l ≤ x ≤ r ≤ 10^9 的 x ,把 x 的所有约数全部写下来. 对于每个写下来的数,只保留最高位的那个数码.求1-9每个数码出现 ...
- Cloudstack 的搭建
Note: 关闭了NFS Storage 的防火墙 service iptables stop 1. 新创建的Linux没有获取IP; vi /etc/sysconfig/network-script ...
- Docker(十二)-Docker Registry镜像管理
Registry删除镜像.垃圾回收 Docker仓库在2.1版本中支持了删除镜像的API,但这个删除操作只会删除镜像元数据,不会删除层数据.在2.4版本中对这一问题进行了解决,增加了一个垃圾回收命令, ...
- CentOS下 NFS的简单使用以及windows 关在linux的NFS存储方法
1. 全部安装的情况下NFS已经安装到服务器上面了,如果没有安装的话 需要使用如下命令进行安装 yum -y install nfs-utils rpcbind 2. 创建需要使用的NFS目录 mkd ...
- Windows 下面简单的同步文件夹工具
1. 微软自己的工具 下载地址 https://www.microsoft.com/en-us/download/confirmation.aspx?id=15155 2. 安装过程忽略 3. 配置与 ...