#P2806. USACO(60)线段树6:修路[Connect, 2007 Open]
USACO(60)线段树6:修路[Connect, 2007 Open]
Description
【题意】加拿大只有两种季节——冬天和修路。随着气温增加,修路季节从一个月延长到了六个月。这对于加拿大的麋鹿来说是个头疼的问题。因为它们总是沿着公路移动的。因此,麋鹿卡农想请你设计一套公路监视系统,它能实时跟踪路况,告诉麋鹿们能否移动到想去的城市。
加拿大的城市主要分布在两条东西走向的直线上。整个国家可以分成 $2 × N$ 个方格,每个方格代 表一座城市,相邻的城市之间都有公路,但有一些道路可能因为修路的关系暂时不可通行,下面是个例子:
(图缺)
图中每条实线代表目前可以通行的公路,虽说 $(2, 3)$ 到 $(1, 3)$ 的路暂时关闭了,但绕个远路还是 可以通行的。
假设在卡农的监视系统运行之前,所有的道路都是关闭的。你的任务就是帮助卡农的监视系统依 次处理 Q 个事件,这些事件可能是一份路况报告,也可能是一个查询请求:
• 如果是路况报告,则应以字符 $C$ 或 $O$ 开头,随后是两个城市的坐标:$(r1, c1)$ 和 $(r2, c2)$,作为输入数据,保证 $(r1, c1)$ 和 $(r2, c2)$ 是两个相邻的城市,$C$ 表示它们之间的公路因施工而暂时关闭,$O$ 表示它们之间的公路因完工而恢复开放;
• 如果是查询请求,则应以字符 $A$ 开头,随后也是两个城市的坐标:$(r1, c1)$ 和 $(r2, c2)$。你应该根 据目前的路况,回应 $(r1, c1)$ 和 $(r2, c2)$ 之间是否可以通行,如果可以,输出 $Y$,如果不能,输出 $N$;
【输入格式】
• 第一行:两个整数 $N$ 和 $Q$,$1 \le N \le 15000, 1 \le Q \le 50000$
• 第二行到第Q+1行:第i+1行有两个整数 $A_i$ 和 $B_i$,$−10^5 \le A_i \le B_i \le10^5$
【输出格式】
• 单个整数:对每个查询,如果两城市之间可以通行,输出 $Y$,否则输出 $N$,每个回答间用换行符分隔
【样例输入】
8
1 2 1 3
1 3 1 4
1 3 2 3
1 4 2 4
2 1 2 2
2 2 2 3
2 3 2 4
2 4 2 5
【样例输出】
C 2 4 2 5
T 2 1 2 5
N
T 2 1 1 2
N
C 2 3 2 4
O 2 4 2 5
T 2 1 2 5
Y
E