题目链接:点击打开链接
题目大意:略。
解题思路:
1、每个 a[i] 右边出现过几次,左边出现过几次,右边规律好找比较稳定,然后用总次数手算出来除以右边的次数,发现左边的规律也来了。
2、注意:变量计算的顺序不一样会导致溢出的情况。
AC 代码
#include<bits/stdc++.h> #include<cmath> #define mem(a,b) memset(a,b,sizeof a); #define INF 0x3f3f3f3f using namespace std; typedef long long ll; int main() { int n; while(~scanf("%d",&n)) { double a,rs=0; for(int i=0;i<n;i++) { scanf("%lf",&a); rs+=a*(i+1)*(n-i); // 不会溢出 // rs+=(i+1)*(n-i)*a; // 会溢出 } printf("%.2f\n",rs); } return 0; }