2017NOIP模拟赛三 A酱的体育课


 

据说改编自$CodeM 美团点评编程大赛初赛A 轮$

简单的水题。。。考试的时候没想到,xjb打了暴力。

显然,第$x$个人排在第$y$个位置的情况总数为$(n-1)!$,在这些情况中,第$x$人对答案的贡献是相同的,记为$p_{x,y}$。

总的情况数是$n!$,故答案为$$\frac{\sum p_{x,y}}{n}$$

看起来挺水的,结论出来逆元组合数什么的都不用求打上去就好了。

代码:

 1 #include<cstring>
 2 #include<cmath>
 3 #include<cstdio>
 4 #include<algorithm>
 5 #define foru(i,x,y) for(int i=x;i<=y;i++)
 6 using namespace std;
 7 
 8 const int N=1e6+10;
 9 double v,u,c[N],d[N],ans;
10 int n;
11 int main(){
12     freopen("pe.in","r",stdin);freopen("pe.out","w",stdout);
13     scanf("%d%lf%lf",&n,&v,&u);
14     foru(i,1,n)scanf("%lf",c+i);
15     foru(i,1,n)scanf("%lf",d+i);
16     foru(i,1,n){
17         foru(k,1,n){
18             double j=n-k+1;
19             ans+=u*n/(c[i]-(j-1)*d[i]-v);
20         }
21     }
22     printf("%.3lf",ans/n);
23     return 0;
24 }

 

转载于:https://www.cnblogs.com/y-m-y/p/7610653.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值