题意:
有n个人进行m次比赛,每次比赛有一个排名,最后的排名是把所有排名都加起来然后找到比自己的分数绝对小的人数加一就是最终排名。
给了其中一个人的所有比赛的名次。求这个人最终排名的期望。
思路:
渣渣的第一道概率DP...弱渣。
dp[i][j]代表进行了i轮比赛之后得分为j的人数的期望,可以知道dp[i][j]来自于dp[i-1][j-m...j-1]的期望的人数乘以概率。这里就是前缀和,用树状数组进行优化...
但是要注意,转移的时候一定要排除已经知道的名次的影响,不能用已知名次来转移...
这题卡了好多天...终于开窍...
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
double tree[];
double dp[];
int me[];//目标选手每场比赛的名次
int n,m;
int ss;//目标选手的名次和
double findans(int tar)
{
double sum=;
while(tar>)
{
sum+=tree[tar];
tar-=tar&(-tar);
}
return sum;
}
void updat(int tar,double num)
{
while(tar<ss)
{
tree[tar]+=num;
tar+=tar&(-tar);
}
}
int main()
{
scanf("%d%d",&n,&m);
memset(dp,,sizeof(dp));
memset(tree,,sizeof(tree));
ss=;
for(int i=;i<=n;i++)
{
scanf("%d",&me[i]);
ss+=me[i];
}
if(m==)
{printf("1.0000000000000000\n");return ;}
for(int j=;j<=m;j++)
{
dp[j]=;
}
dp[me[]]=;
for(int j=;j<ss;j++)
{
updat(j,dp[j]);
}
for(int i=;i<=n;i++)
{
memset(dp,,sizeof(dp));
for(int j=i;j<ss;j++)
{
int k;
dp[j]+=findans(j-)/(m-);
k=j-m-;
if(k>=i-)
dp[j]-=findans(k)/(m-);
if(j-i+>=me[i])
{
dp[j]-=findans(j-me[i])/(m-);
if(j-me[i]->=i-)
{
dp[j]+=findans(j-me[i]-)/(m-);
}
}
}
memset(tree,,sizeof(tree));
for(int j=i;j<ss;j++)
{
updat(j,dp[j]);
}
}
printf("%.16lf\n",findans(ss-)+);
}
CodeForces 602E【概率DP】【树状数组优化】的更多相关文章
-
Codeforces 909 C. Python Indentation (DP+树状数组优化)
题目链接:Python Indentation 题意: Python是没有大括号来标明语句块的,而是用严格的缩进来体现.现在有一种简化版的Python,只有两种语句: (1)'s'语句:Simple ...
-
2015南阳CCPC C - The Battle of Chibi DP树状数组优化
C - The Battle of Chibi Description Cao Cao made up a big army and was going to invade the whole Sou ...
-
【eJOI2020】考试(dp &; 树状数组优化)
Description \(n\) 个正整数排成一列,每个位置 \(i\) 有一个初始值 \(A_i\) 以及目标值 \(B_i\). 一次操作可以选定一个区间 \([l, r]\),并将区间内所有数 ...
-
bzoj 3594: [Scoi2014]方伯伯的玉米田 dp树状数组优化
3594: [Scoi2014]方伯伯的玉米田 Time Limit: 60 Sec Memory Limit: 128 MBSubmit: 314 Solved: 132[Submit][Sta ...
-
FZU2236 第十四个目标 dp+树状数组优化
分析:这种题烂大街,n^2,然后数据结构优化下到nlogn,离散化 #include <cstdio> #include <cstring> #include <queu ...
-
Codeforces 909C Python Indentation:树状数组优化dp
题目链接:http://codeforces.com/contest/909/problem/C 题意: Python是没有大括号来标明语句块的,而是用严格的缩进来体现. 现在有一种简化版的Pytho ...
-
Codeforces 946G Almost Increasing Array (树状数组优化DP)
题目链接 Educational Codeforces Round 39 Problem G 题意 给定一个序列,求把他变成Almost Increasing Array需要改变的最小元素个数. ...
-
Codeforces 629D Babaei and Birthday Cake(树状数组优化dp)
题意: 线段树做法 分析: 因为每次都是在当前位置的前缀区间查询最大值,所以可以直接用树状数组优化.比线段树快了12ms~ 代码: #include<cstdio> #include< ...
-
CodeForces - 597C Subsequences 【DP + 树状数组】
题目链接 http://codeforces.com/problemset/problem/597/C 题意 给出一个n 一个 k 求 n 个数中 长度为k的上升子序列 有多少个 思路 刚开始就是想用 ...
-
BZOJ3594: [Scoi2014]方伯伯的玉米田【二维树状数组优化DP】
Description 方伯伯在自己的农田边散步,他突然发现田里的一排玉米非常的不美. 这排玉米一共有N株,它们的高度参差不齐. 方伯伯认为单调不下降序列很美,所以他决定先把一些玉米拔高,再把破坏美感 ...
随机推荐
-
听说你们要开始学C了
同学们好: 先自我介绍一下,我是你们的助教吴喆(厚颜无耻地要求大家叫我吉吉老师:-D),本科学的电子,所以陆陆续续接触了不少C/C++的工作,曾经被编码折磨得死去活来,如今却对其念念不舍,颇有点“斯德 ...
-
SQL Server调优系列进阶篇(如何索引调优)
前言 上一篇我们分析了数据库中的统计信息的作用,我们已经了解了数据库如何通过统计信息来掌控数据库中各个表的内容分布.不清楚的童鞋可以点击参考. 作为调优系列的文章,数据库的索引肯定是不能少的了,所以本 ...
-
Unable to find vcvarsall.bat的解决办法
明年绝对买MAC电脑,这一两天安装paramiko,真是操碎了心. 安装paramiko时报error: Unable to find vcvarsall.bat这种错误,网上找了各种方法啊,解决的办 ...
-
在WebBrowser中通过模拟键盘鼠标操控网页中的文件上传控件(转)
引言 这两天沉迷了Google SketchUp,刚刚玩够,一时兴起,研究了一下WebBrowser. 我在<WebBrowser控件使用技巧分享>一文中曾谈到过“我现在可以通过WebBr ...
-
数据结构学习笔记05图 (邻接矩阵 邻接表-->;BFS DFS、最短路径)
数据结构之图 图(Graph) 包含 一组顶点:通常用V (Vertex) 表示顶点集合 一组边:通常用E (Edge) 表示边的集合 边是顶点对:(v, w) ∈E ,其中v, w ∈ V 有向边& ...
-
hdu 4920 Matrix multiplication(矩阵乘法)2014多培训学校5现场
Matrix multiplication Time ...
-
IOC/DI的基本思想
IOC/DI的基本思想 1.把程序之间的依赖关系去掉 2.把程序对象设置到IOC/DI容器的配置中作为Bean 3.由IOC/D.容器来管理Bean的创建和实例化 4.由IOC/DI容器来把Bean之 ...
-
最长上升子序列(LIS)
(我先扯些没用的) 我这个笨孩子 学点东西好慢好慢的 我还贪玩 于是 将自己陷入了一个超级超级超级差的境地 可 我还傻乎乎的保有着天真的梦想(理想?) 所以现在我要加倍的努力努力再努力了 只能嘎油了 ...
-
ajax实现模糊查询完成列表信息显示
之前遗留一个老问题:列表模糊查询,用的直接是form提交,点击搜索按扭后,页面刷新,搜索框中关键词就没了,这鸡肋的体验,我发誓一定要搞定它 但是鉴于自己写代码是纯粹玩票,我写代码没有目标,只有在当前工 ...
-
mysql命令gruop by报错this is incompatible with sql_mode=only_full_group_by
在mysql 工具 搜索或者插入数据时报下面错误: ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause ...