A.lifeguards(线段树+枚举)
枚举删掉哪条线段,离散化+线段树维护线段覆盖长度qaq
B.rental(贪心+二分+枚举)
枚举留几头牛,贪心算收益qaq
C.mootube(并查集+暴力)
类似最大生成树的并查集+暴力处理出dis,然后暴力回答询问qaq

A

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define ll long long
#define inf 0x3f3f3f3f
#define N 100010
inline int read(){int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();return x*f;
}
int n,a[N<<1],L[N],R[N],num=0,m,ans=0;
struct node{int len,covlen,cov;
}tr[N<<4];
inline void pushup(int p){if(tr[p].cov) return;tr[p].covlen=tr[p<<1].covlen+tr[p<<1|1].covlen;
}
inline void build(int p,int l,int r){if(l==r){tr[p].len=a[l+1]-a[l];return;}int mid=l+r>>1;build(p<<1,l,mid);build(p<<1|1,mid+1,r);tr[p].len=tr[p<<1].len+tr[p<<1|1].len;
}
inline void cover(int p,int l,int r,int x,int y){if(x<=l&&r<=y){tr[p].cov++;if(tr[p].cov==1) tr[p].covlen=tr[p].len;return;}int mid=l+r>>1;if(x<=mid) cover(p<<1,l,mid,x,y);if(y>mid) cover(p<<1|1,mid+1,r,x,y);pushup(p);
}
inline void del(int p,int l,int r,int x,int y){if(x<=l&&r<=y){tr[p].cov--;if(tr[p].cov==0){if(l==r) tr[p].covlen=0;else pushup(p);}return;}int mid=l+r>>1;if(x<=mid) del(p<<1,l,mid,x,y);if(y>mid) del(p<<1|1,mid+1,r,x,y);pushup(p);
}
int main(){freopen("lifeguards.in","r",stdin);freopen("lifeguards.out","w",stdout);n=read();for(int i=1;i<=n;++i){a[++num]=L[i]=read();a[++num]=R[i]=read();}sort(a+1,a+num+1);m=unique(a+1,a+num+1)-a-1;build(1,1,m-1);for(int i=1;i<=n;++i){L[i]=lower_bound(a+1,a+m+1,L[i])-a;R[i]=lower_bound(a+1,a+m+1,R[i])-a;cover(1,1,m-1,L[i],R[i]-1);}for(int i=1;i<=n;++i){del(1,1,m-1,L[i],R[i]-1);ans=max(ans,tr[1].covlen);cover(1,1,m-1,L[i],R[i]-1);}printf("%d\n",ans);return 0;
}

B

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define ll long long
#define inf 0x3f3f3f3f
#define N 100010
inline int read(){int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();return x*f;
}
int n,m,r,a[N],b[N];
ll suma[N],sumb[N],sumx[N],sumc[N],ans=0;
struct node{int x,c;
}s[N];
inline bool cmp(int x,int y){return x>y;}
inline bool cmp1(node x,node y){return x.c>y.c;}
int main(){freopen("rental.in","r",stdin);freopen("rental.out","w",stdout);n=read();m=read();r=read();for(int i=1;i<=n;++i) a[i]=read();sort(a+1,a+n+1,cmp);for(int i=1;i<=n;++i) suma[i]=suma[i-1]+a[i];for(int i=1;i<=m;++i) s[i].x=read(),s[i].c=read();sort(s+1,s+m+1,cmp1);for(int i=1;i<=m;++i) sumx[i]=sumx[i-1]+s[i].x,sumc[i]=sumc[i-1]+(ll)s[i].c*s[i].x;for(int i=1;i<=r;++i) b[i]=read();sort(b+1,b+r+1,cmp);for(int i=1;i<=r;++i) sumb[i]=sumb[i-1]+b[i];for(int i=0;i<=n;++i){//留i头牛的最优收益if(n-i>r) continue;ll res=sumb[n-i];int pos=upper_bound(sumx+1,sumx+m+1,suma[i])-sumx-1;res+=sumc[pos];if(pos!=m) res+=(ll)s[pos+1].c*(suma[i]-sumx[pos]);ans=max(ans,res);}printf("%lld\n",ans);return 0;
}

C

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
using namespace std;
#define ll long long
#define inf 0x3f3f3f3f
#define N 5010
inline int read(){int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();return x*f;
}
int n,m,dis[N][N],fa[N],sz[N];
vector<int>a[N];
struct edge{int x,y,val;
}e[N];
inline bool cmp(edge x,edge y){return x.val>y.val;}
inline int find(int x){return x==fa[x]?x:fa[x]=find(fa[x]);}
int main(){freopen("mootube.in","r",stdin);freopen("mootube.out","w",stdout);n=read();m=read();for(int i=1;i<=n;++i) fa[i]=i,a[i].push_back(i);for(int i=1;i<n;++i) e[i].x=read(),e[i].y=read(),e[i].val=read();sort(e+1,e+n,cmp);for(int ii=1;ii<=n-1;++ii){int xx=find(e[ii].x),yy=find(e[ii].y);if(a[xx].size()>a[yy].size()) swap(xx,yy);fa[xx]=yy;for(int i=0;i<a[xx].size();++i)for(int j=0;j<a[yy].size();++j){int x=a[xx][i],y=a[yy][j];dis[x][y]=dis[y][x]=e[ii].val;}for(int i=0;i<a[xx].size();++i) a[yy].push_back(a[xx][i]);}while(m--){int k=read(),x=read(),ans=0;for(int i=1;i<=n;++i) if(dis[x][i]>=k) ans++;printf("%d\n",ans);}return 0;
}

USACO 2018JAN Silver相关推荐

  1. 一中OJ #3509 七的倍数 [USACO Jan16,洛谷P3131] | 同余前缀和 | 解题报告

    一中OJ | #3509 七的倍数 [USACO Jan16 Silver , Subsequences Summing to Sevens] 时限 1000MS/Case 内存 128MB/Case ...

  2. 2021 USACO Dec 题解

    前言:最近开始刷usaco的silver了,希望12月份时可以过silver (害怕) P1 Closest Cow Wins (滑动窗口,数学): FN和FJ是死对头,在一条数轴有 k 块草,第 i ...

  3. USACO翻译:USACO 2014 DEC Silver三题

    USACO 2014 DEC SILVER 一.题目概览 中文题目名称 回程 马拉松 奶牛慢跑 英文题目名称 piggyback marathon cowjog 可执行文件名 piggyback ma ...

  4. USACO翻译:USACO 2014 FEB SILVER 三题

    USACO 2014 FEB SILVER 一.题目概览 中文题目名称 自动打字 路障 神秘代码 英文题目名称 auto rblock scode 可执行文件名 auto rblock scode 输 ...

  5. USACO翻译:USACO 2012 FEB Silver三题

    USACO 2012 FEB SILVER 一.题目概览 中文题目名称 矩形草地 奶牛IDs 搬家 英文题目名称 planting cowids relocate 可执行文件名 planting co ...

  6. 【USACO 2020 January Silver】Loan Repayment 题解

    [USACO 2020 January Silver]Loan Repayment 题目: 题目描述 Farmer John 欠了 Bessie N 加仑牛奶(1≤N≤10^12).他必须在 K 天内 ...

  7. USACO 2018 FEBURARY CONTEST :SILVER T1

    USACO 2018 February Contest, Silver Problem 1. Rest Stops Farmer John and his personal trainer Bessi ...

  8. USACO 1月 2021-2022 January Contest Silver银组 题解

    你好啊我又又又来了 要准备usaco的铁铁们可以参考这个文章哦! 想刷好USACO--看这篇文章就够了_GeekAlice的博客-CSDN博客我最近是发现了一个很好用的网站https://blog.c ...

  9. USACO 2012 January Contest, Silver Division Solution

    T1是一道构图然后跑最短路的题. T2是一道裸的dp 然而我看了以后觉得爆搜是一定可以过掉的== 于是我先来一发二进制枚举,然后two points 维护答案.. T3是一道神题 首先要分类讨论,然后 ...

最新文章

  1. 商城模块java_Java商城秒杀系统实战系列~构建SpringBoot多模块项目
  2. 金华杭州计算机学校录取分数线,2017年浙江金华各地中考录取分数线
  3. 线程:volatile关键字
  4. 深入理解C指针之四:指针和数组
  5. VTK:vtkNew<vtkDenseArray<double>>用法实战
  6. kafka的反序列化类KafkaDeserializationSchema的使用(还没整理完)
  7. 如何用cocos2d-x来开发简单的Uphone游戏:(二) 移动的精灵
  8. cf1208G Polygons 欧拉函数
  9. jQuery 结构分析
  10. 安卓下拉框获取序号_中文编程:安卓的右上角菜单
  11. Comments on The Ph.D. grind------by Yishi
  12. keil5 仿真usart窗口没有限制_多体仿真:DS SIMULIA Simpack 2021
  13. JavaScript的for in语法遍历对象的属性(1)
  14. 增加一个输出,解决一个奇怪的死机
  15. 基于Python+Django的微博评论热点舆情分析可视化系统的设计与实现-计算机毕业设计选题题目推荐
  16. 计算机芯片的形成和发展,计算机中将cpu集成在一块芯片上所形成的元器件是什么...
  17. python+opencv填充图像不规则区域:fillPoly和fillConvexPoly区别、半透明填充方法
  18. simulink 快捷键 运行_高效使用simulink
  19. 计算机芯片级维修包括哪些,计算机芯片级维修1
  20. 分享暄桐好作业之《灵飞经》,静观春意生长

热门文章

  1. 20165214 2018-2019-2 《网络对抗技术》Exp3 免杀原理与实践 Week5
  2. 【深度强化学习】【论文阅读】【双臂模仿】Deep Imitation Learning for BimanualRobotic Manipulation
  3. 惠普服务器开机dhcp无限重启,HP的笔记本,关机后又自动重启,开始是开启是从DHCP开启...
  4. 有赞项目出现包无法解析的问题
  5. 教务管理系统示例——前端模板
  6. 关于监听切换应用,app从后台返回进入锁屏界面
  7. 个人搭建云手机系统_信通中心搭建云办公系统助力疫情防控
  8. JM8.6编解码器中trace_enc.txt和trace_dec.txt文件的功能
  9. 利用python判断字符串是否为回文
  10. 【macOS Qt MenuBar】的显示方法