浙农大第十九届程序设计竞赛 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; }