BZOJ 2784 时间流逝
BZOJ 2784 时间流逝
古典概率论...
可以发现由于能量圈数量限制,所以所构成的必定为树状结构(即便是转成最小能量圈和能量圈权值和之后存在重复状态,但是每个状态的含义不同,而且不能自身转移自身就没有问题,而且每个重复状态的本质是相同的)。
那么很显然,可以看作树上高斯消元解决。
剩下的就模板了.jpg
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <cstdlib>
#include <queue>
#include <iostream>
#include <bitset>
using namespace std;
struct Segment
{
double k,b;
Segment(){}
Segment(double x,double y){k=x,b=y;}
Segment operator + (const Segment &a) const {return Segment(k+a.k,b+a.b);}
Segment operator * (const double &a) const {return Segment(k*a,b*a);}
}f[55][55];
int n,T,a[55],vis[55][55];double p;
Segment dfs(int s,int x)
{
if(s>T)return Segment(0,0);if(vis[s][x])return f[s][x];vis[s][x]=1;
Segment ret=Segment(0,0);
double np=s?p:0,nq=(1-np)/x;
for(int i=1;i<=x;i++)ret=ret+dfs(s+a[i],i);
return f[s][x]=Segment(np/(1-nq*ret.k),(ret.b*nq+1)/(1-nq*ret.k));
}
int main()
{
while(scanf("%lf%d%d",&p,&T,&n)==3)
{
for(int i=1;i<=n;i++)scanf("%d",&a[i]);
sort(a+1,a+n+1);memset(vis,0,sizeof(vis));
printf("%.3lf\n",dfs(0,n).b);
}
}
BZOJ 2784 时间流逝的更多相关文章
- bzoj 2784 时间流逝 —— 树上高斯消元
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2784 其实转移是一棵树,从根到一个点表示一种能量圈状态,当能量值大于 T 是停止,也就是成为 ...
- bzoj 2784 [JLOI2012]时间流逝——树上高斯消元
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2784 一个状态可以加很多个能量圈,但减少能量圈的情况只有一种.所以可以用树来刻画. 然后就变 ...
- bzoj 2784: [JLOI2012]时间流逝【树形期望dp】
来自lyd课件 发现s和last(s),next(s)成树结构,然后把式子化简成kx+b的形式,做树形dp即可 #include<iostream> #include<cstdio& ...
- BZOJ2784: [JLOI2012]时间流逝
BZOJ2784: [JLOI2012]时间流逝 https://lydsy.com/JudgeOnline/problem.php?id=2784 分析: 挺有意思的一道题. 注意到状态数是\(P( ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- BZOJ 2127: happiness [最小割]
2127: happiness Time Limit: 51 Sec Memory Limit: 259 MBSubmit: 1815 Solved: 878[Submit][Status][Di ...
- BZOJ 3275: Number
3275: Number Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 874 Solved: 371[Submit][Status][Discus ...
- BZOJ 2879: [Noi2012]美食节
2879: [Noi2012]美食节 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1834 Solved: 969[Submit][Status] ...
- bzoj 4610 Ceiling Functi
bzoj 4610 Ceiling Functi Description bzoj上的描述有问题 给出\(n\)个长度为\(k\)的数列,将每个数列构成一个二叉搜索树,问有多少颗形态不同的树. Inp ...
随机推荐
- python之常用模块补充
namedtuple 命名元组 ->类似创建了一个类 from collections import namedtuple p = namedtuple("point", [ ...
- python之字典(dict)
字典:一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型. 字典由键和对应值成对组成 {key:value,key1,value1}, 例如: dic = {'中国': '汉语 ...
- Landsat8 卫星数据下载
具体参考 https://www.ixxin.cn/2016/11/27/landsat8freedata/
- RNN,LSTM中如何使用TimeDistributed包装层,代码示例
本文介绍了LSTM网络中的TimeDistributed包装层,代码演示了具有TimeDistributed层的LSTM网络配置方法. 演示了一对一,多对一,多对多,三种不同的预测方法如何配置. 在对 ...
- 网络基础 cookie详解
cookie详解 by:授客 QQ:1033553122 cookie干嘛用的? 参见文章http 会话(session)详解: 网络基础 http 会话(session)详解 cookie分类 ...
- oracle存储函数实例
CREATE OR REPLACE PROCEDURE "PROC_INS_DAY_DOCTOR_LL"(v_date in VARCHAR) is --PROC_INS_DAY_ ...
- [Spark] Spark 安装配置
原文地址:https://www.cnblogs.com/memento/p/9148732.html Windows 上的单机版安装 下载地址:http://spark.apache.org/dow ...
- 为Hexo Next主题添加分享及打赏功能
博客地址:往事亦如风的博客 要想先看打赏和分享功能效果,请移步我的博客 打赏功能 因为next主题自带打赏功能,所以我们只需要在next的主题配置文件中找到如下代码,image文件夹是我在blog/s ...
- redis的一命令
参考http://redisdoc.com/ 参考http://redis.io/commands 连接操作相关的命令 默认直接连接 远程连接-h 192.168.1.20 -p 6379 ping ...
- 修改sqlserver2008数据库的排序规则 (转)
修改sqlserver2008数据库的排序规则 (转) 修改SQL server 2008服务器排序规则 SQL Server 2008安装好后,发现服务器排序规则不对,又不想重装SQL S ...