第三题
问题描述
输入格式
第一行一个整数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 1−n的排列,那么任意两点间一定有一条边,因此入度为0的点只能有一个,反证即可证明。
因此可以暴力枚举点对来连边,然后跑Tarjan即可。这样的时空复杂度都是 O ( n 2 ) O(n^2) O<