題目描述
n×nn \times nn×n 的西洋棋棋盤上有kkk 個車,第iii個車位於第rir_iri行,第cic_ici 列。求至少被乙個車攻擊的格仔數量。
車可以攻擊所有同一行或者同一列的地方。
輸入格式
第1 行,2 個整數n,kn,kn,k。
接下來k 行,每行2 個整數ri,cir_i,c_iri,ci。
輸出格式
1 個整數,表示被攻擊的格仔數量。
輸入輸出樣例
輸入 #1
3 21 2
2 2輸出 #1
說明/提示
• 對於30% 的資料,1≤n≤103;1≤k≤1031 \le n \le 10^3; 1 \le k \le 10^31≤n≤103;1≤k≤103;
• 對於60% 的資料,1≤n≤106;1≤k≤1061 \le n \le 10^6; 1 \le k \le 10^61≤n≤106;1≤k≤106;
• 對於100% 的資料,1≤n≤109;1≤k≤106;1≤ri,ci≤n1 \le n \le 10^9; 1 \le k \le 10^6; 1 \le r_i , c_i \le n1≤n≤109;1≤k≤106;1≤ri,ci≤n。
#include
#include
#include
#include
using
namespace std;
typedef
long
long ll;
const
int maxn =
1e6+10;
int a[maxn]
;int b[maxn]
;int
main()
sort
(a, a + k)
;sort
(b, b + k)
; ll h =
1, l =1;
for(
int i =
1; i < k; i++
)// cout << h << " " << l << endl;
h -= n, l -
= n;
ll ans = n * n - h * l;
printf
("%lld"
, ans)
;return0;
}
P3913 車的攻擊
n n 的西洋棋棋盤上有kk 個車,第ii個車位於第r iri 行,第c ici 列。求至少被乙個車攻擊的格仔數量。車可以攻擊所有同一行或者同一列的地方。輸入格式 第1 行,2 個整數n,kn,k。接下來k 行,每行2 個整數r i,c iri ci 輸出格式 1 個整數,表示被攻擊的格仔數量。輸入...
P3913 車的攻擊
看起來挺簡單,看到資料範圍了嗎?看到了 對於100 的資料,n1 n 109 1 k 106 1 ri?ci?n。死心了嗎?是真的有點絕望。第一反應就是 桶,那反正也想不出別的辦法了,我們就用桶試試吧。經過畫圖推算之後,我們可以得到乙個公式 n n n chang n clie n是棋盤的邊長,ch...
洛谷 P3913 車的攻擊
n times nn n 的西洋棋棋盤上有kk 個車,第ii個車位於第r iri 行,第c ici 列。求至少被乙個車攻擊的格仔數量。車可以攻擊所有同一行或者同一列的地方。輸入格式 第1 行,2 個整數n,kn,k。接下來k 行,每行2 個整數r i,c iri ci 輸出格式 1 個整數,表示被攻...