博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【线段树区间最值单点更新模板】BNUOJ 52965 E Excellent Engineers
阅读量:4363 次
发布时间:2019-06-07

本文共 1304 字,大约阅读时间需要 4 分钟。

1 #include
2 using namespace std; 3 typedef long long ll; 4 #define N 100010 5 #define ls(p) (p<<1) 6 #define rs(p) (p<<1|1) 7 const int INF=1e9; 8 struct node 9 {10 int a,b,c;11 } p[N];12 struct segment13 {14 int l,r,min;15 } t[N<<2];16 int n;17 bool cmpa(const node &p,const node &q)18 {19 return p.a
>1;28 build(ls(p),l,mid);29 build(rs(p),mid+1,r);30 }31 int ask(int p,int l,int r)32 {33 if(l<=t[p].l && t[p].r<=r)34 return t[p].min;35 int mid=(t[p].l+t[p].r)>>1;36 int ans=INF;37 if(l<=mid) ans=min(ans,ask(ls(p),l,r));38 if(mid
>1;49 if(x<=mid) change(ls(p),x,y);50 else change(rs(p),x,y);51 t[p].min=min(t[ls(p)].min,t[rs(p)].min);52 }53 int main()54 {55 int T;56 scanf("%d",&T);57 while(T--)58 {59 scanf("%d",&n);60 for(int i=1;i<=n;++i)61 {62 scanf("%d%d%d",&p[i].a,&p[i].b,&p[i].c);63 }64 sort(p+1,p+n+1,cmpa);65 build(1,1,n);66 int ans=0;67 for(int i=1;i<=n;++i)68 {69 if(ask(1,1,p[i].b)>p[i].c) ++ans;70 change(1,p[i].b,p[i].c);71 }72 printf("%d\n",ans);73 }74 }
View Code

 

转载于:https://www.cnblogs.com/itcsl/p/7624763.html

你可能感兴趣的文章
10.scheam.xml的配置
查看>>
通过命令给Linux(CentOS)分区
查看>>
python接口自动化3-自动发帖(session)
查看>>
复杂问题的简单抽象:魔兽世界中的兔子们
查看>>
那些美到极致的语言!
查看>>
Xamarin的不归路-ios模拟器没有键盘
查看>>
【云笔记】群晖DS218+ NoteStation 折腾
查看>>
jdk安装配置
查看>>
四、RocketMq简单的消费者和生产者(示例代码)
查看>>
json介绍
查看>>
Maven编译unmappable character for encoding Cp1252问题
查看>>
xftp上传文件失败,执行程序发现磁盘满了:No space left on device
查看>>
duplicate symbols for architecture i386 问题?
查看>>
[BZOJ]1027 合金(JSOI2007)
查看>>
poj 1696 Space Ant (几何 : 叉积 应用 + dfs)
查看>>
MySQL:按前缀批量删除表格
查看>>
Route学习笔记之Area的Route注册
查看>>
构建之法--软件工程师自我测评表
查看>>
电子书搜索
查看>>
SQO2008配置管理工具服务显示远程过程调用失败
查看>>