【题解】牛客练习赛38

A 出题人的RP值
直接cin>>输入太慢了,要使用输入挂,直接飞起
然后sort排序,和比自己大的从小到大取平均值即可

#include
#define N 100005
using namespace std;
 
inline void rd(int &x){
    x=0;char ch=0;int w=0;
    while(!isdigit(ch)) ch=getchar(),w|=ch=='-';
    while( isdigit(ch)) x=(x<<1)+(x<<3)+(ch^48),ch=getchar();
    x=w?-x:x;
}
 
int n;
int a[N];
double x;
 
signed main(){
    rd(n);cin>>x;
    for(int i=1;i<=n;i++)
        rd(a[i]);
    sort(a+1,a+1+n);
    for(int i=1;i<=n;i++)
        if(a[i]<x) continue;
        else x=(x+a[i])/2;
    printf("%.3lf",x);
}

B 出题人的女装述
数学概率题
化简分数只要同除gcd

#include 
#define ll long long
 
ll n, m, x, y, t;
double ans;
 
ll gcd(ll a, ll b)
{
    if(b) return gcd(b, a % b);
    return a;
}
 
int main()
{
    scanf("%lld%lld%lld%lld%lld", &n, &m, &x, &y, &t);
     
    ll f = x * (x - 1) * m * (m - 1) + y * (y - 1) * n * (n - 1);
    ll c = (x * m + n * y) * (n - 1) * (m - 1);
     
    if(t)
    {
        ll d = gcd(f, c);
        printf("%lld/%lld", f / d, c / d);
    }
    else
    {
        double lff = f, lfc = c;
        printf("%.3lf", lff / lfc);
    }
     
    return 0;
}

C 出题人的矩阵
三阶幻方是最简单的幻方,又叫九宫格,是由1,2,3,4,5,6,7,8,9九个数字组成的一个三行三列的矩阵(如右图示),其对角线、横行、纵向的和都为15,称这个最简单的幻方的幻和为15。中心数为5。

然后就不会了(小声bb
D 出题人的手环
不会
E 出题人的数组
不会
F 出题人的无向图
不会

你可能感兴趣的:(【题解】牛客练习赛38)