http://codeforces.com/gym/100240 J


【分析】

  这题我搞了好久才搞出样例的11.76。。。。【期望没学好

  然后好不容易弄成分数形式。然后我‘+’没打。。【于是爆0。。。

  好桑心。。

  对于x^2这样的期望,是不能直接求x的期望然后平方的!

  为什么呢?因为意义就是不对的,你的概率有可能乘了两次什么的。。。

  我的方法是:

  先把每天分离出来,对于某一天,假设你前i部番的x^2的期望求了出来,然后新的一部翻在这天放的概率是p,

  新的答案就是$x^{2}*(1-p)+p*(x+1)^2$

  即$x^{2}+p*(2*x+1)$

  这样就可以求了。【实测是对的啊!!

  所以你还要维护x的期望【这个很容易的啦。

  然后你会发现,你的分数是a/(n^2)+b/n,这种形式的,a很小不会超过n,我就用两个东西来存这两个分子。

  每超过分母就把它加进整数部分,这样用long long就不会爆了。

  对于n很大,发现d<=10000,dmx~n这一段的期望其实是完全一样的,所以只需要求1~dmx就好了。

  如果d也很大的话,还可以把d离散,中间的点的期望跟前面最近的点的期望是一样的。

  男神的方法好像有点不一样?但是我觉得这个更容易想啊!

 #include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
#define Maxn 10010
#define LL long long int b[][];
LL d[Maxn],c[Maxn];
int mymax(LL x,LL y) {return x>y?x:y;} struct node
{
LL x,y,z;
}A[Maxn]; LL gcd(LL a,LL b)
{
if(b==) return a;
return gcd(b,a%b);
} LL n;
void add(LL x,LL a,LL b)
{
A[x].x+=a;A[x].y+=b;
A[x].z+=A[x].x/(n*n);A[x].z+=A[x].y/n;
A[x].x%=(n*n);A[x].y%=n;
} int main()
{
int m,mx=;
scanf("%lld%d",&n,&m);
for(int i=;i<=m;i++)
{
scanf("%d",&b[i][]);
for(LL j=;j<=b[i][];j++)
{
scanf("%d",&b[i][j]);
mx=mymax(mx,b[i][j]);
}
}
for(int i=;i<=mx;i++) A[i].x=,A[i].y=,A[i].z=;
for(int i=;i<=mx;i++) c[i]=;
for(int i=;i<=m;i++)
{
for(int j=;j<=mx;j++) d[j]=;
for(int j=;j<=mx;j++)
{
for(int k=;k<=b[i][];k++)
{
if(j+b[i][k]->mx) break;
d[j+b[i][k]-]++;
}
}
for(int i=;i<=mx;i++)
{
add(i,d[i]**c[i],d[i]);
c[i]+=d[i];
}
}
if(n<=mx)
{
for(int i=;i<=n;i++)
{
A[].z+=A[i].z;
add(,A[i].x,A[i].y);
}
}
else
{
for(int i=;i<=mx;i++)
{
A[].z+=A[i].z;
add(,A[i].x,A[i].y);
}
A[].z+=(n-mx)*A[mx].z;
add(,A[mx].x*(n-mx),A[mx].y*(n-mx));
}
A[].x+=A[].y*n;
A[].z+=A[].x/(n*n);
A[].x%=(n*n);
LL g=gcd(A[].x,n*n);
A[].x/=g;A[].y=n*n/g;
printf("%lld+%lld/%lld\n",A[].z,A[].x,A[].y);
return ;
}

2017-04-19 10:16:51

【codeforces.com/gym/100240 J】的更多相关文章

  1. 【Codeforces Round #406 (Div. 2)】题解

    The Monster 签到题,算一下b+=a和d+=c,然后卡一下次数就可以了. Not Afraid 只要一组出现一对相反数就是安全的. Berzerk 题意:[1,n],两个人轮流走,谁能走到1 ...

  2. 【Codeforces Global Round 1 C】Meaningless Operations

    [链接] 我是链接,点我呀:) [题意] 给你一个a 让你从1..a-1的范围中选择一个b 使得gcd(a^b,a&b)的值最大 [题解] 显然如果a的二进制中有0的话. 那么我们就让选择的b ...

  3. 【 Codeforces Global Round 1 B】Tape

    [链接] 我是链接,点我呀:) [题意] x轴上有m个连续的点,从1标号到m. 其中有n个点是特殊点. 让你用k段区间将这n个点覆盖. 要求区间的总长度最小. [题解] 一开始假设我们需要n个胶带(即 ...

  4. 【Codeforces Beta Round #45 D】Permutations

    [题目链接]:http://codeforces.com/problemset/problem/48/D [题意] 给你n个数字; 然后让你确定,这n个数字是否能由若干个(1..x)的排列连在一起打乱 ...

  5. 【codeforces 434 div 1 A】Did you mean...

    [链接]h在这里写链接 [题意] 让你维护一段序列. 这段序列,不会出现连续3个以上的辅音. (或者一块全是辅音则也可以) (用空格可以断开连续次数); 要求空格最小. [题解] 模拟着,别让它出现连 ...

  6. 【Codeforces Beta Round #88 C】Cycle

    [Link]:http://codeforces.com/problemset/problem/117/C [Description] 问你一张图里面有没有一个三元环,有的话就输出. [Solutio ...

  7. 【codeforces Manthan, Codefest 17 C】Helga Hufflepuff's Cup

    [链接]h在这里写链接 [题意]     k是最高级别的分数,最高界别的分数最多只能有x个.     1<=k<=m;     和k相邻的点的分数只能小于k;     n个点的树,问你每个 ...

  8. 【Codeforces自我陶醉水题篇~】(差17C code....)

    Codeforces17A 题意: 有一种素数会等于两个相邻的素数相加 如果在2~n的范围内有至少k个这样的素数,就YES,否则就NO; 思路: 采用直接打表,后面判断一下就好了.那个预处理素数表还是 ...

  9. 【Codeforces Global Round 1 E】Magic Stones

    [链接] 我是链接,点我呀:) [题意] 你可以把c[i]改成c[i+1]+c[i-1]-c[i] (2<=i<=n-1) 问你能不能把每一个c[i]都换成对应的t[i]; [题解] d[ ...

随机推荐

  1. Shiro实战教程(二)

    http://www.jianshu.com/p/6786ddf54582/ https://www.cnblogs.com/ealenxie/p/10610741.html

  2. 使用 jQuery 避免鼠标双击

    介绍 当用户双击DOM对象(例如按钮和链接等)时,对于用户交互一直是个麻烦的问题. 幸运的是, jQuery 提供了一个相当棒的解决方法. 那就是.one(). .one()这个方法是做什么的? 它附 ...

  3. 在Unity中实现屏幕空间反射Screen Space Reflection(2)

    traceRay函数 在上一篇中,我们有如下签名的traceRay函数 bool traceRay(float3 start, float3 direction, out float2 hitPixe ...

  4. python小爬虫练手

    一个人无聊,写了个小爬虫爬取不可描述图片.... 代码太短,就暂时先往这里贴一下做备份吧. 注:这是很严肃的技术研究,当然爬下来的图片我会带着批判性的眼光审查一遍的....   :) #! /usr/ ...

  5. Vue的keep-alive

    Vue的keep-alive: 简答的做下理解 缓存!页面从某一个页面跳转到另一个页面的时候,需要进行一定的缓存,然后这个时候调用的钩子函数是actived,而在第一次加载的时候,created.ac ...

  6. RMQ之ST求区间最大值

    题目链接:https://cn.vjudge.net/problem/HRBUST-1188 每一次按照二进制的方式进行更新,二维数组dp [i] [j],i表示下标,j表示从i 开始的往后移动2的j ...

  7. php菜刀分析学习

    这里以eval为例 我们知道, php中的eval能把字符串当代码执行: eval('phpcode'); 注意, 这里的代码要有分号结尾, 我们测试: 我们创建一个最简单的SHELL: <?p ...

  8. $FFT$(快速傅里叶变换)

    - 概念引入 - 点值表示 对于一个$n - 1$次多项式$A(x)$,可以通过确定$n$个点与值(即$x$和$y$)来表示这唯一的$A(x)$ - 复数 对于一元二次方程 $$x^2 + 1 = 0 ...

  9. socket 开发 - 那些年用过的基础 API

    ---------------------------------------------------------------------------------------------------- ...

  10. 对 makefile 中 .DEFAULT 的理解

    上例子: all:gao @echo "final".DEFAULT: @echo "In default" 由于 gao 是一个前提条件,但是 makefil ...