zoukankan      html  css  js  c++  java
  • lightoj 1027 A Dangerous Maze 期望

    设答案为r,cnt为x[i] >=0的个数

    那么r = 1/n *  (Σx[i](x[i] >= 0) + ∑(r - x[i])(x[i] < 0))

    然后把r移项到一起解方程, 得到r = ∑|x[i]| / cnt,同除gcd。记得特判下x[i]均为负数的情况即可。

     1 #include <cstdio>
     2 #include <algorithm>
     3 using namespace std;
     4 int T,cas,n,tot,gcd,cnt;
     5 int x[110];
     6 int main()
     7 {
     8     for (scanf("%d",&T);T != 0;T--)
     9     {
    10         cas++;
    11         tot = cnt = 0;
    12         scanf("%d",&n);
    13         for (int i = 1;i <= n;i++)
    14         {
    15             scanf("%d",&x[i]);
    16             if (x[i] >= 0)
    17             {
    18                 cnt++;
    19                 tot += x[i];
    20             }else
    21                 tot -= x[i];
    22         }
    23         if (cnt == 0)
    24         {
    25             printf("Case %d: inf
    ",cas); 
    26             continue;
    27         }
    28         gcd = __gcd(tot,cnt);
    29         printf("Case %d: %d/%d
    ",cas,tot / gcd,cnt / gcd);
    30         
    31     }
    32     return 0;
    33 }
    心之所动 且就随缘去吧
  • 相关阅读:
    ES6新特性总结
    Flask
    Flask
    Flask
    Flask
    Flask
    Flask
    Flask
    Linux
    Linux
  • 原文地址:https://www.cnblogs.com/iat14/p/11410053.html
Copyright © 2011-2022 走看看