首先想到二分答案

然后我们从大往小加区间,如果之前出现了一个区间包含当前区间

那显然不合法,我们可以用并查集了维护

 type node=record
x,y,mi,id:longint;
end; var q:array[..] of node;
a:array[..] of longint;
fa:array[..] of longint;
l,r,m,n,t,i,ans:longint; function min(a,b:longint):longint;
begin
if a>b then exit(b) else exit(a);
end; function max(a,b:longint):longint;
begin
if a>b then exit(a) else exit(b);
end; procedure swap(var a,b:node);
var c:node;
begin
c:=a;
a:=b;
b:=c;
end; procedure sort(l,r:longint);
var i,j,x:longint;
begin
i:=l;
j:=r;
x:=q[(l+r) shr ].mi;
repeat
while x<q[i].mi do inc(i);
while q[j].mi<x do dec(j);
if not(i>j) then
begin
swap(q[i],q[j]);
inc(i);
dec(j);
end;
until i>j;
if l<j then sort(l,j);
if i<r then sort(i,r);
end; function have(l,r:longint):boolean;
var x:longint;
begin
x:=r;
while x>=l do
begin
if fa[x]= then exit(false);
x:=fa[x]-;
end;
exit(true);
end; procedure work(l,r:longint);
var x:longint;
begin
x:=r;
while x>=l do
begin
if fa[x]= then fa[x]:=l
else begin
x:=fa[x];
if x>=l then fa[x]:=l;
end;
dec(x);
end;
end; function check(m:longint):boolean;
var s,i,j,x,y,k:longint;
begin
fillchar(fa,sizeof(fa),);
s:=;
for i:= to t do
if q[i].id<=m then
begin
inc(s);
a[s]:=i;
end; i:=;
while i<s do
begin
inc(i);
j:=i+;
while (j<=s) and (q[a[i]].mi=q[a[j]].mi) do inc(j);
dec(j);
x:=;
y:=n+;
for k:=i to j do
begin
x:=max(x,q[a[k]].x);
y:=min(y,q[a[k]].y);
end;
if x>y then exit(false);
if have(x,y) then exit(false);
for k:=i to j do
work(q[a[k]].x,q[a[k]].y);
i:=j;
end;
exit(true);
end; begin
readln(n,t);
for i:= to t do
begin
readln(q[i].x,q[i].y,q[i].mi);
q[i].id:=i;
end;
sort(,t);
l:=;
r:=t-;
if check(t) then writeln()
else begin
ans:=t;
while l<=r do
begin
m:=(l+r) shr ;
if not check(m) then
begin
ans:=m;
r:=m-;
end
else l:=m+;
end;
writeln(ans);
end;
end.

最新文章

  1. highchart 中数据千分位显示为空格而不是逗号的解决方案
  2. Get 和 Post方法的登录
  3. Java注意的地方
  4. (转)用Eclipse编译你的ROS程序
  5. java使用iText生成pdf表格
  6. MYSQL 行转列 以及基本的聚合函数count,与group by 以及distinct组合使用
  7. CentOS7.2非HA分布式部署Openstack Pike版 (实验)
  8. Java 多线程(一)—— 概念的引入
  9. 3,postman的变量写法和collection
  10. web的几种轮播
  11. (伪)再扩展中国剩余定理(洛谷P4774 [NOI2018]屠龙勇士)(中国剩余定理,扩展欧几里德,multiset)
  12. IC设计推荐书籍
  13. [原创] MSP430G2系列图形化编程相关资料
  14. Spring-IOC bean 生命周期之 Lifecycle 钩子
  15. PHP多进程学习(一)__来初步了解一下PHP多进程及简单demo
  16. mysql 多查询临时表的运用
  17. JAVA_HOME is not defined correctly
  18. pymsql的简单实用方法
  19. DELPHI XE5-8 弹出列表框供选择
  20. jquery在IE8上使用find的问题

热门文章

  1. XML学习总结
  2. VS连接远程数据库,连接sqlserver2008,显示“基础提供程序在 Open 上失败”
  3. 模仿易信的UI
  4. sublime package
  5. vs-ps combination error
  6. 【技术贴】解决Eclipse中SVN图标不显示
  7. [C++]虚函数-同名访问
  8. java集合--java.util.ConcurrentModificationException异常
  9. Ubuntu环境下nutch2.2.1集成HBase0.94.25
  10. hdu1151 Air Raid