caioj1270: 概率期望值1:小象涂色
DP深似海,得其得天下。——题记
叕叕叕叕叕叕叕叕叕叕叕(第∞次学DP内容)被D飞了,真的被DP(pa)了。这次D我的是大叫着第二题比较难(小象涂色傻b题)的Mocha(zzz)大佬,表示搞个概率DP,后面还有什么区间、状压、插头DP,不知道这个坑怎么填。唉,心疼。
讲讲这道题吧,在ZZZ大佬的帮助下终于看懂了题,然后他告诉我:
其实全部的箱子都是一样的
然后聪明(???)的我就发现,答案要求的其实就是每个箱子,颜色最后变成0~c-1的期望,再乘以颜色那个数字罢了。
So,弄一个f数组,f[i][j]表示染了i次色,变成j颜色的期望。
然后,上代码。很好理解,我写了注释。
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
int cs[];
double f[][];//f[i][j]表示染了i次色,变成j颜色的期望
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int n,c,K,mmax=,x,y;
scanf("%d%d%d",&n,&c,&K);
memset(cs,,sizeof(cs));
for(int i=;i<=K;i++)
{
scanf("%d%d",&x,&y);
for(int j=x;j<=y;j++)
{
cs[j]++;
mmax=max(mmax,cs[j]);
}
} memset(f,,sizeof(f));f[][]=1.0;//一开始全部都是1
for(int i=;i<=mmax;i++)
for(int j=;j<c;j++)
{
f[i][j]+=f[i-][j]/;//有1/2的概率,不会被涂色
for(int k=;k<c;k++)f[i][(j*k)%c]+=f[i-][j]/(*c);//枚举所有可能被涂的颜色
//被涂的概率是1/2,被涂k颜色概率为1/c,合起来就是1/(2*c)
} double ans=0.0;
for(int i=;i<=n;i++)//枚举每一个箱子
for(int j=;j<c;j++)//被涂成j颜色
ans+=f[cs[i]][j]*j;//i被涂有cs[i]次,由于要求颜色和,乘以颜色
printf("%.9lf\n",ans);
}
return ;
}
caioj1270: 概率期望值1:小象涂色的更多相关文章
- 【NOIP模拟题】小象涂色(概率+期望+递推)
表示数学是个渣... 其实只需要推出每个箱子k次以后的颜色为i的概率就能算出期望了.. 对于区间[l, r]的箱子因为是任意颜色且任意取,所以概率分别为1/c和1/2,那么整体概率就为这两个的乘积.根 ...
- BZOJ2375: 疯狂的涂色
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2375 小t非常喜爱画画,但是他还是一个初学者.他最近费尽千辛万苦才拜到已仙逝的达 芬奇为师(神 ...
- bzoj 2375: 疯狂的涂色
2375: 疯狂的涂色 Time Limit: 5 Sec Memory Limit: 128 MB Description 小t非常喜爱画画,但是他还是一个初学者.他最近费尽千辛万苦才拜到已仙逝的 ...
- 涂色问题(Python)
题目:将一个圆形等分成N个小扇形,将这些扇形标记为1,2,3,-,N.现在使用M种颜色对每个扇形进行涂色,每个扇形涂一种颜色,且相邻的扇形颜色不同,问有多少种不同的涂法?(N≥1,M≥3) 参考:ht ...
- 「CQOI2007」「BZOJ1260」涂色paint (区间dp
1260: [CQOI2007]涂色paint Time Limit: 30 Sec Memory Limit: 64 MBSubmit: 2057 Solved: 1267[Submit][St ...
- NOIp十连测 涂色游戏
[问题描述]小A 和小B 在做游戏.他们找到了一个n 行m 列呈网格状的画板.小A 拿出了p 支不同颜色的画笔,开始在上面涂色.看到小A 涂好的画板,小B 觉得颜色太单调了,于是把画板擦干净,希望涂上 ...
- [CSP-S模拟测试]:涂色游戏(DP+组合数+矩阵快速幂)
题目描述 小$A$和小$B$在做游戏.他们找到了一个$n$行$m$列呈网格状的画板.小$A$拿出了$p$支不同颜色的画笔,开始在上面涂色.看到小$A$涂好的画板,小$B$觉得颜色太单调了,于是把画板擦 ...
- 题解 P1283 【平板涂色】
P1283 平板涂色 数据范围也太小了qwq..适合本萌新暴搜 小小的剪枝: 1.用pre预处理出每块矩形上方的矩形,pre[i][0]记录数目(如果数据范围再开大一点,直接1~n枚举判断可能超时qw ...
- 1260: [CQOI2007]涂色paint
Description 假设你有一条长度为5的木版,初始时没有涂过任何颜色.你希望把它的5个单位长度分别涂上红.绿.蓝.绿.红色,用一个长度为5的字符串表示这个目标:RGBGR. 每次你可以把一段连续 ...
随机推荐
- Dev Express中Dock panel的使用
使用DockManager,添加DockPanel. 1,DockManager位于“导航和布局”分类中. 添加一个DockManager控件到窗体中以后,即是在当前窗体类中,添加一个DockMana ...
- jenkins 提示No emails were triggered
发送邮件 Jenkins->系统管理->系统设置,在“邮件通知”里设置smtp服务器地址,以及发送者邮箱地址,在具体的任务构建完成以后,可以设置发送邮件,在某一个任务的"Add ...
- POJ3037 Skiing
Skiing 题目大意: 给定一个M*N的网格,已知在每个网格中的点可以向上下左右四个方向移动一个单位,每个点都有一个高度值. 从每个点开始移动时存在一个速度值,从A点移动到B点,则此时B点的速度为& ...
- C# 判断字符串为空的4种方法及效率
在程序开发过程中,少不了要处理字符串,并且常常要判断字符串是否为空,通常有哪些判断方法,以及不同方法的效率又怎么样? 在 C# 中,通常有三种判断字符串是否为空的方法,下面分别探讨. 1.str.Le ...
- PTA 02-线性结构4 Pop Sequence (25分)
题目地址 https://pta.patest.cn/pta/test/16/exam/4/question/665 5-3 Pop Sequence (25分) Given a stack wh ...
- 【最小费用最大流】N. April Fools' Problem (medium)
http://codeforces.com/contest/802/problem/N [题解] 方法一: #include<bits/stdc++.h> using namespace ...
- [NOI2012(bzoj2879)(vijos1726)]美食节 (费用流)
2879: [Noi2012]美食节 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 2288 Solved: 1207[Submit][Status ...
- 如何把你的Windows PC变成瘦客户机
越来越多的用户开始使用vmware view 4.5来做为企业桌面虚拟化的平台,通过view,所有的管理工作都转移到数据中心,但是考虑到成本原因,很多人员还在使用PC机,有没有办法将PC机变成瘦客户机 ...
- 【Nginx】如何使用http配置
处理http配置项可以分为下面4个步骤: 1)创建数据结构用于存储配置项对应的参数 2)设定配置项在nginx.conf中出现时的限制条件与回调方法 3)实现第2步中的回调方法,或者使用Nginx框架 ...
- Github配置SSH
以前也配置过ssh,但是没有注意用法,在配置一次熟悉流程 检查本机是否有ssh key设置 $ cd ~/.ssh 或cd .ssh 如果没有则提示: No such file or director ...