bzoj#P1268. [AHOI2006] 棋盘上的问题 board

[AHOI2006] 棋盘上的问题 board

题目描述

可可和卡卡画了一张巨大的 N×NN \times N 的棋盘,他们想在这个棋盘上放尽量多的国际象棋的“車”,使得它们互相不能攻击到对方(車可以沿着棋盘的横向和纵向攻击)。但这个答案显然就是棋盘的宽度 NN,于是可可在棋盘上规定了只有在有限的 MM 个位置上才能放棋子。(其他位置不能放棋子,而車却可以穿过这个位置去攻击其他的棋子)然而这样也不会难倒两个聪明的小家伙,他们很快算出来这个答案是 KK。于是卡卡又提出来一个问题:如果我们在这 MM 个可以放棋子的位置中再去掉一个位置,而仍然保证最多能放下 KK 个車,可行的方案又有多少种呢?

【任务】编写一个程序:

  1. 从输入文件中读入棋盘的大小和棋盘上可以放棋子的位置信息;
  2. 计算出如题卡卡所说的可行方案的数目;
  3. 向输出文件打印你得到的答案。

输入格式

输入文件的第一行有两个正整数 NNMM,分别表示棋盘的大小和可以放棋子的位置数目。 以下 MM 行,每行用 xix_iyiy_i 两个整数描述一个位置,表示这个位置是棋盘的第 xix_i 行第 yiy_i(1iM, 1xi, yiN)(1 \leq i \leq M, \ 1 \leq x_i, \ y_i \leq N)。同样的一个位置不会被描述两次。

输出格式

输出文件中只有一个整数,表示可行方案的数目。

3 4
1 2
1 3
2 2
2 1
4

提示

30%30 \% 的测试数据中,1N1000, 1M2×1041 \leq N \leq 1000, \ 1 \leq M \leq 2 \times 10^4

100%100 \% 的测试数据中,$1 \leq N \leq 2 \times 10^5, \ 1 \leq M \leq 6 \times 10^5$。