【codeforces.com/gym/100240 J】
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】的更多相关文章
- 【Codeforces Round #406 (Div. 2)】题解
The Monster 签到题,算一下b+=a和d+=c,然后卡一下次数就可以了. Not Afraid 只要一组出现一对相反数就是安全的. Berzerk 题意:[1,n],两个人轮流走,谁能走到1 ...
- 【Codeforces Global Round 1 C】Meaningless Operations
[链接] 我是链接,点我呀:) [题意] 给你一个a 让你从1..a-1的范围中选择一个b 使得gcd(a^b,a&b)的值最大 [题解] 显然如果a的二进制中有0的话. 那么我们就让选择的b ...
- 【 Codeforces Global Round 1 B】Tape
[链接] 我是链接,点我呀:) [题意] x轴上有m个连续的点,从1标号到m. 其中有n个点是特殊点. 让你用k段区间将这n个点覆盖. 要求区间的总长度最小. [题解] 一开始假设我们需要n个胶带(即 ...
- 【Codeforces Beta Round #45 D】Permutations
[题目链接]:http://codeforces.com/problemset/problem/48/D [题意] 给你n个数字; 然后让你确定,这n个数字是否能由若干个(1..x)的排列连在一起打乱 ...
- 【codeforces 434 div 1 A】Did you mean...
[链接]h在这里写链接 [题意] 让你维护一段序列. 这段序列,不会出现连续3个以上的辅音. (或者一块全是辅音则也可以) (用空格可以断开连续次数); 要求空格最小. [题解] 模拟着,别让它出现连 ...
- 【Codeforces Beta Round #88 C】Cycle
[Link]:http://codeforces.com/problemset/problem/117/C [Description] 问你一张图里面有没有一个三元环,有的话就输出. [Solutio ...
- 【codeforces Manthan, Codefest 17 C】Helga Hufflepuff's Cup
[链接]h在这里写链接 [题意] k是最高级别的分数,最高界别的分数最多只能有x个. 1<=k<=m; 和k相邻的点的分数只能小于k; n个点的树,问你每个 ...
- 【Codeforces自我陶醉水题篇~】(差17C code....)
Codeforces17A 题意: 有一种素数会等于两个相邻的素数相加 如果在2~n的范围内有至少k个这样的素数,就YES,否则就NO; 思路: 采用直接打表,后面判断一下就好了.那个预处理素数表还是 ...
- 【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[ ...
随机推荐
- (3.1)用ictclas4j进行中文分词,并去除停用词
酒店评论情感分析系统——用ictclas4j进行中文分词,并去除停用词 ictclas4j是中科院计算所开发的中文分词工具ICTCLAS的Java版本,因其分词准确率较高,而备受青睐. 注:ictcl ...
- Lua的工具资源3
[LuaSrcDiet] (5.0.2) - 通过删除不必要的空白和注释缩减Lua文件的大小. [LuaProfiler] (5.0) - 一个用来查找Lua应用瓶颈的工具time profiler ...
- 【bzoj】2326 [HNOI2011]数学作业
[题意]给定n和m,求1~n从高位到低位连接%m的结果.n=11时,ans=1234567891011%m.n<=10^18,m<=10^9. [算法]递推+矩阵快速幂 [题解] 考虑枚举 ...
- 【CodeForces】889 B. Restoration of string
[题目]B. Restoration of string [题意]当一个字符串在字符串S中的出现次数不小于任意子串的出现次数时,定义这个字符串是高频字符串.给定n个字符串,求构造出最短的字符串S满足着 ...
- 将neuroph导入到Eclipse中
1.下载neuroph 网址:http://neuroph.sourceforge.net/ 本人选择的是2.8版本 2.解压文件 本人解压至:D:\neuroph-2.8 3.neuroph jar ...
- python之supervisor进程管理工具
supervisor是python写的一个管理进程运行的工具,可以很方便的监听.启动.停止.重启一个或多个进程:有了supervisor后,就不用字节写启动和监听的shell脚本了,非常方便. sup ...
- gpk-update-icon占用CPU及清除【原创】
发现服务器有个gpk-update-icon一直占用CPU进程 网上查看相关信息比较少. gpk-update-icon是gnome的更新图标进程 俩种处理方法: 1.杀掉gpk-update-ico ...
- Apache+jboss群集部署
Jboss default方式上的Cluster配置[二] - 操作系统http://www.myexception.cn/operating-system/862858.html Jboss def ...
- C基础 如何让代码只执行一次
1.0 最简单, 最高效的方式 C 代码运行起点 main 就是个大单例函数. 如果把函数注册在其里面, 那么一定很可以 :) // 某个库需要初始化的函数 void log_init(void) { ...
- ../include/squid_md5.h:27:2: error: #error Cannot find OpenSSL MD5 headers【squid安装中】
../include/squid_md5.h:27:2: error: #error Cannot find OpenSSL MD5 headers yum install -y openssl* w ...