Wannafly挑战赛3 A
来源:互联网 发布:淘宝店标图片 编辑:程序博客网 时间:2024/04/28 17:26
Problem Description
给你一个长 n 的序列,m 次查询
每次查询给一个 x,然后:
从序列的最左端 1 开始,每次随机的选择一个右端点 r,如果两个端点间的区间和不超过 x ,就进行一次分割,然后把左端点变成 r + 1, 否则一直随机下去。
问这样分割出来的期望段数
n <= 100000 , m <= 500 , 0 <= a[i] <= 1000 , x <= 1000000
Solution
f[i]表示从i到最后的期望段数,可以做DP。
有f[i]=average(sum(f[j]))+1, j>i && sum[j-1]-sum[i-1]<=x
- 枚举m,倒序枚举n计算f[i],枚举j确定转移范围,时间复杂度O(n^2m)
- 边计算边统计f的后缀和,二分j,时间复杂度O(nmlog2n)
- 随着i的递减,sum是单调增加的,将j设置为尾指针r=N+1,则while sum>x –r即可,时间复杂度O(nm)
Code
#include <cstdio>#include <iostream>#include <cstring>using namespace std;int N,M;int i,j,k,ma,l,r,mid;int a[100100],x[1010],sum[100100];double f[100100],sf[100100];int main(){ scanf("%d%d",&N,&M); sum[0]=0; ma=a[1]; for (i=1;i<=N;i++) { scanf("%d",&a[i]); sum[i]=sum[i-1]+a[i]; if (ma<a[i]) ma=a[i]; } for (i=1;i<=M;i++) scanf("%d",&x[i]); for (int ii=1;ii<=M;ii++) { if (ma>x[ii]) { puts("YNOI is good OI!"); continue; } f[N+1]=0; sf[N+1]=0; sf[N+2]=0; k=N+1; for (i=N;i>=1;i--) { while (sum[k-1]-sum[i-1]>x[ii]) k--; f[i]=(sf[i+1]-sf[k+1])/(k-i)+1; sf[i]=sf[i+1]+f[i]; } printf("%.2lf\n",f[1]);//puts(""); }}
阅读全文
0 0
- Wannafly挑战赛3 A
- Wannafly挑战赛3- A 珂朵莉
- Wannafly挑战赛3
- Wannafly挑战赛1 A.Treepath
- Wannafly挑战赛1 A Treepath
- Wannafly挑战赛1 A-DP
- Wannafly 牛客网 挑战赛2 A
- Wannafly挑战赛A(概率DP)
- Wannafly挑战赛4 A C
- Wannafly挑战赛3 A 概率DP+双指针
- Wannafly挑战赛3-A-珂学送分(概率dp)
- Wannafly挑战赛3-A.珂学送分(概率方程+后缀和)
- Wannafly挑战赛3 部分题解
- Wannafly挑战赛1 A.Treepath(dfs)
- Wannafly挑战赛1A-(树形DP)
- Wannafly挑战赛1 A Treepath LCA
- Wannafly挑战赛4 A 解方程
- newCoder Wannafly挑战赛4:A 解方程
- Educational Codeforces Round 33 F. Subtree Minimum Query
- 为 Azure Resource Manager 中的虚拟机设置 WinRM 访问权限
- MyBatis(mysql) 批量更新的坑
- CodeForces
- Android -- Ethernet网络模块中NetworkFactory与NetworkAgent的通信机制
- Wannafly挑战赛3 A
- apache-storm例子:统计句子中的单词数量
- ActionMode 和 ToolBar
- JZVIdeoPlayer(节操视频播放)
- 【BZOJ1002】轮状病毒(FJOI2007)-DP+组合数学+高精度
- 深入剖析PE文件 (告诉你exe文件打开后是依据什么来创建进程并在系统中运行)
- Idea 注解错误could not autowire no beans of...plicationEventMulticaster not initialized
- 为何用Angular CLI 以及安装和使用
- string.IsNullOrEmpty与string.IsNullOrWhiteSpace