目录

2020/05/24 牛客假日团队赛40

比赛信息

日期: 2020/05/24 链接: https://ac.nowcoder.com/acm/contest/5207#description
做题统计:王瑞琦: 冯宇扬:1 常程:1

题解

A

solved by, upsolved by .

题意:
题解:

B

solved by, upsolved by .

题意:
题解:

C

solved by, upsolved by .

题意:
题解:

D

solved by, upsolved by .

题意:
题解:

E Goldilocks and the N Cows

solved by 常程, upsolved by .

题意:有N($1\le N\le20000$)只奶牛,每只奶牛有一个舒适温度区间A(i)-B(i),温度过低、温度过高、温度位于舒适区间都有不同产奶量,分别以XYZ表示,其中Y一定是最大的。每只牛的区间不同,求在某个温度下产奶量最大的值。
题解:离散化区间边界。设定增量数组,在每只牛的边界处分别给增量数组加Y-X、Z-Y。初始奶量(温度很低)为3X,温度从小到大根据增量数组变化,得到最大值。

code

code

#include<cstdio>
#include<map>
#include<algorithm>
using namespace std;
int n,x,y,z,a[20005],b[20005],line[40005],add[40005];
long long ans,now;
map<int,int>p;
int main()
{
    scanf("%d%d%d%d",&n,&x,&y,&z);
    for(int i=1;i<=n;i++)
    {
        scanf("%d%d",&a[i],&b[i]);
        line[2*i-1]=a[i];
        line[2*i]=++b[i];
    }
    sort(line+1,line+2*n+1);
    line[2*n+1]=-1;
    for(int i=1;i<=2*n;i++)
        if(line[i]!=line[i+1])
        {
            line[++line[0]]=line[i];
            p[line[i]]=line[0];
        }
    for(int i=1;i<=n;i++)
    {
        add[p[a[i]]]+=y-x;
        add[p[b[i]]]+=z-y;
    }
    ans=now=x*n;
    for(int i=1;i<=line[0];i++)
    {
        now+=add[i];
        ans=max(ans,now);
    }
    printf("%lld",ans);
    return 0;
}

F

solved by, upsolved by .

题意:
题解:

G

solved by, upsolved by .

题意:
题解:

H

solved by, upsolved by .

题意:
题解:

I

solved by 常程, upsolved by .

题意:
题解:

J

solved by, upsolved by .

题意:
题解:

K

solved by, upsolved by .

题意:
题解:

L

solved by, upsolved by .

题意:
题解:

replay

总结