HDU 5570 balls

来源:互联网 发布:centos lamp环境搭建 编辑:程序博客网 时间:2024/05/01 19:52
代码不是自己写的,这道题看上去是个好题。先囤着。
#include<cstdio>#include<cstring>using namespace std;int n;int m;int a[1005][1005];int sum[1005];double f[1005][1005];double g[1005][1005];double ans;int main(){while(~scanf("%d%d",&n,&m)){memset(f,0,sizeof f);ans = 0;memset(g,0,sizeof g);memset(sum,0,sizeof sum);for(int i=1;i<=n;++i){for(int j = 1;j<=m;++j){scanf("%d",&a[i][j]),sum[i] += a[i][j];}}for(int i=1;i<=n;++i){for(int j=1;j<=m;++j){f[i][j] = f[i-1][j] + 1.0*a[i][j] / sum[i];g[i][j] = g[i-1][j]*(sum[i]-a[i][j])/sum[i]+(g[i-1][j] + 2*f[i-1][j] + i - 1)*a[i][j]/sum[i];g[i][j] += 1.0*a[i][j] / sum[i];}}for(int i=1;i<=m;++i)ans+= g[n][i];printf("%.2lf\n",ans - n * (n-1)/2);}return 0;}

0 0
原创粉丝点击