2022牛客多校加赛

M Maimai DX 2077

题意

有五种得分,满分是最高分的累积和。给定每种音符的出现次数和的分情况,如果没有miss每对于一种特殊音符可以加额外分,请输出最终得分 / 满分的百分比。

思路

根据题意模拟即可

代码

#include<bits/stdc++.h>
using namespace std;
long double a,b,c,d,e;
long double an,bn,a0,b0;
int main(){
    
    for(int i=1;i<=4;i++){
        scanf("%llf%llf%llf%llf%llf",&a,&b,&c,&d,&e);
        if(i==1) {
            an+=a+b+c*0.8+d*0.5;
            a0+=(a+b+c+d+e)*1;
                 }
        else if(i==2) {
            an+=(a+b)*2+c*1.6+d;
             a0+=(a+b+c+d+e)*2;
        }
        else if(i==3) {
            an+=(a+b)*3+c*2.4+d*1.5;
            a0+=(a+b+c+d+e)*3;
        }
        else if(i==4) {
            an+=(a+b)*5+c*2.5+d*2;
            bn+=a+0.5*b+0.4*c+0.3*d;
            a0+=(a+b+c+d+e)*5;
            b0+=(a+b+c+d+e)*1;
        }
        
    }
    long double ans=an/a0+bn/b0*0.01;
    ans=ans*100;
    printf("%.10llf\n",ans);
    
}

E Everyone is bot

题意

有n个人排成一列准备复读,对于第 i 个人如果他是所有人中第 j 个复读的,那么他就会获得a[i][j]瓶冰红茶,但是假如这个j恰好是倒数第p个复读的,他就不会获得冰红茶甚至要给出154瓶冰红茶。在每个人都最大化自己获得的冰红茶的前提下,计算出每个人最终会获得的冰红茶数量。

思路

注意到恰好倒数第p个人,会得到负数的冰红茶,这是所有人所避免的。发现n-p之后的人都不能复读,此时考虑n-p个人的情况下的,倒数第p个人。

最终复读人数就是nn %\% pp个人,其余都不能复读

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务