P3913 車的攻擊 思維

2021-10-09 22:23:43 字數 1206 閱讀 5059

題目描述

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 個整數,表示被攻...