P3913 車的攻擊

2021-08-29 14:04:40 字數 975 閱讀 6449

n×n 的西洋棋棋盤上有kk 個車,第ii個車位於第r_iri​行,第c_ici​ 列。求至少被乙個車攻擊的格仔數量。

車可以攻擊所有同一行或者同一列的地方。

輸入格式:

第1 行,2 個整數n,kn,k。

接下來k 行,每行2 個整數r_i,c_iri​,ci​。

輸出格式:

1 個整數,表示被攻擊的格仔數量。

輸入樣例#1:複製

3 2

1 22 2

輸出樣例#1:複製

7
• 對於30% 的資料,1 \le n \le 10^3; 1 \le k \le 10^31≤n≤103;1≤k≤103;

• 對於60% 的資料,1 \le n \le 10^6; 1 \le k \le 10^61≤n≤106;1≤k≤106;

• 對於100% 的資料,1 \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。

將車所在的行和列看作放到方陣的乙個角,只需要判斷不重複的行 l 和列 r 各有多少然後結果就為 n*n-(n-l)*(n-r)

可以用sort排序去重,也可以用unique函式去重

#include #include using namespace std;

int a[1000005];

int b[1000005];

int main()

sort(a+1,a+1+k);

sort(b+1,b+1+k);

long long num1=0,num2=0;

for(int i=1;i<=k;i++)

cout

}

P3913 車的攻擊

看起來挺簡單,看到資料範圍了嗎?看到了 對於100 的資料,n1 n 109 1 k 106 1 ri?ci?n。死心了嗎?是真的有點絕望。第一反應就是 桶,那反正也想不出別的辦法了,我們就用桶試試吧。經過畫圖推算之後,我們可以得到乙個公式 n n n chang n clie n是棋盤的邊長,ch...

P3913 車的攻擊 思維

題目描述 n nn times nn n 的西洋棋棋盤上有kkk 個車,第iii個車位於第rir iri 行,第cic ici 列。求至少被乙個車攻擊的格仔數量。車可以攻擊所有同一行或者同一列的地方。輸入格式 第1 行,2 個整數n,kn,kn,k。接下來k 行,每行2 個整數ri,cir i,c ...

洛谷 P3913 車的攻擊

n times nn n 的西洋棋棋盤上有kk 個車,第ii個車位於第r iri 行,第c ici 列。求至少被乙個車攻擊的格仔數量。車可以攻擊所有同一行或者同一列的地方。輸入格式 第1 行,2 個整數n,kn,k。接下來k 行,每行2 個整數r i,c iri ci 輸出格式 1 個整數,表示被攻...