1 #include2 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 }