====== 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,温度从小到大根据增量数组变化,得到最大值。 #include #include #include using namespace std; int n,x,y,z,a[20005],b[20005],line[40005],add[40005]; long long ans,now; mapp; 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 ===== ===== 总结 =====