ural 1716
来源:互联网 发布:校园社区源码 编辑:程序博客网 时间:2024/06/07 16:09
代码一:
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int N=5005;double dp[N][N];int main(){ int n,s; cin>>n>>s; int y=s-n-n,x=n-y;// printf("%.7lf\n",1.0*(2*y+1)*x/(x+y)); for(int i=0;i<=x;++i) { for(int j=0;j<=y;++j) { if(i==0) dp[i][j]=0; else if(j==0) dp[i][j]=1; else dp[i][j]=(dp[i][j-1]*j+dp[i-1][j]*i+2.0*i*j/(i+j-1))/(i+j); } } printf("%.7lf\n",dp[x][y]); return 0;
代码二:
#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>#include <cstdlib>#include <cmath>#include <queue>#include <vector>#include <map>#define pb push_back#define mp make_pair#define eps 1e-9#define zero(x) (fabs(x)<eps)#define pi acos(-1.0)#define f1 first#define f2 secondconst int inf=0x3f3f3f3f;const long long INF=1LL<<50;using namespace std;typedef long long LL;typedef pair <int,double> PII;#define N 5002double f[2][N][2];int n,s,no,ye;//f[n][yes][last]void doit(){ ye=s-n*2; no=n-ye; //printf("~~%d %d\n",no,ye); memset(f,0,sizeof(f)); f[0][0][1]=1; double ans=0; for (int i=0;i<n;i++) {int o=i&1; memset(f[o^1],0,sizeof(f[o^1])); for (int j=0;j<=ye;j++) { double p1,p0; p1=(ye-j)/double (n-i); p0=1-p1; f[o^1][j+1][1]+=f[o][j][1]*p1; f[o^1][j][0]+=f[o][j][1]*p0; ans+=f[o][j][1]*p0; f[o^1][j+1][1]+=f[o][j][0]*p1; ans+=f[o][j][0]*p1; f[o^1][j][0]+=f[o][j][0]*p0; } } printf("%.7lf\n",ans);}int main(){ while (scanf("%d%d",&n,&s)!=EOF) doit();}
0 0
- ural 1716
- URAL
- 【ural】
- URAL
- URAL
- URAL
- URAL
- URAL
- URAL
- URAL
- URAL
- URAL
- URAL
- URAL
- URAL
- URAL
- URAL
- URAL
- JS字随鼠标移动,伸缩菜单,搜索引擎,删表格列
- Linux重要分区及其作用
- CV_EXPORT定义的作用,lib及dll的区别
- 强制重启N种方法
- Web中文乱码——2、SpringMVC+Jetty 乱码
- ural 1716
- NYOJ NO.305 表达式求值
- C++流(半搬运)
- Web中文乱码——4、Webx+jetty乱码
- CI持续集成之cruiserControl用户安全处理
- 大小段问题
- Web中文乱码——5、Response乱码
- 其它中文乱码——1、PL/SQL Developer乱码
- The journey of Ural dynamic programming