Newnode's NOI 模拟赛 第三题(可持久化线段树优化建图+Tarjan)

第三题

问题描述

这里写图片描述

输入格式

第一行一个整数n。

接下来n行每行3个整数表示宇宙的三个属性(ai,bi,ci)。

输出格式

n行每行一个整数,如果第i个宇宙可以成为最大宇宙则第i行为1,否则为0。

样例输入 1

3
1 3 2
2 1 3
3 2 1

样例输出 1

1
1
1

样例输入 2

10
1 10 4
2 7 9
3 3 7
4 4 8
5 2 1
6 9 3
7 6 10
8 8 5
9 5 6
10 1 2

样例输出 2

1
1
1
1
0
1
1
1
1
0

提示

对于20%的数据n<=10;
对于40%的数据n<=500;
对于60%的数据n<=2000;
对于100%的数据n<=100000。


首先考虑暴力的做法。
如果宇宙A大于宇宙B,那么从A到B连一条边,这样构好图后,可能成为最大的宇宙的点肯定满足从它出发可以到达所有能到达它的点。因此就是缩点后入度为0的点,注意到题目中给的 a i , b i , c i a_i,b_i,c_i ai,bi,ci都是一个 1 − n 1-n 1n的排列,那么任意两点间一定有一条边,因此入度为0的点只能有一个,反证即可证明。

因此可以暴力枚举点对来连边,然后跑Tarjan即可。这样的时空复杂度都是 O ( n 2 ) O(n^2) O<

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值