浙农大第十九届程序设计竞赛 B-每日咕咚
每日咕咚
https://ac.nowcoder.com/acm/contest/7872/B
分析
考虑每一个人对答案的贡献。假设当前为第
个人,那么我们肯定可以统计出他在所有位置跑到队首的总时间
因为这个人的占位有n种情况,所以t还要除以n,所以再求一个总和即可
代码
#include<bits/stdc++.h>
#define R register
#define ll long long
#define inf INT_MAX
#define dl double
using namespace std;
const int N=1010;
int n;
dl x,v,ans=0.0;
dl f[N][N];
int main()
{
scanf("%d%lf%lf",&n,&x,&v);
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
scanf("%lf",&f[i][j]),f[i][j]-=v;
for (int i=1;i<=n;i++)
{
dl now=0.0;
for (int j=1;j<=n;j++)
now+=x/f[i][j];
ans+=now;
}
printf("%.2lf\n",ans);
return 0;
}

查看5道真题和解析