題解 洛谷P6057 加油武漢 七步洗手法

2022-07-20 04:30:12 字數 862 閱讀 3828

給定一張含有 \(n\) 個點的無向完全圖,其中 \(m\) 條邊是白邊,其餘是黑邊。

現在需要你求出同色的三元環(或者說,三角形)的個數。

同色三元環?不認識?

就是讓你求這個圖裡面有幾個三條邊是同色的三角形

1 \(o(nm)\) 暴力,然鵝t了

2 數學法(逃)

同色三角形其實難算,那麼我們可以算異色三角形,用三角形的總個數減去它的一半

如果乙個點可以連出白色邊\(x\)條就可以連出黑色邊\(n-x-1\)條

所以不同色三角形的個數就是\(x*(n-1-x)\)

用乙個 vector 儲存白色邊上點的資訊

之後1-n列舉,套上公式:

sum+=(v[i].size()*(n-v[i].size()-1));
n個點可以構成的三角形個數就是 \(c^n_3\)

它的值就是\(n*(n-1)*(n-2)/(1*2*3)\)

再減去\(sum\)的一半即可

ac code:

#includeusing namespace std;

#define long long ll;

vectorv[323333];

int n,m,a,b;

ll sum;

int main()

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

sum+=(v[i].size()*(n-v[i].size()-1));

cout<<(ll)(n*(n-1)*(n-2)/6-sum/2);

return 0;

}

最後要注意的是開 longlong

洛谷 P1101 題解

這道題可以用深搜 回溯 來寫,相信大部分人都是這麼想的,但是有些人可能在一些地方饒了半天,所以這裡就貼一下我的思路,個人覺得自己的很好懂,除了tx和ty那裡,但是tx和ty的那種用法對於輸出路徑的題目一般很實用 這個算是比較簡單的吧,題目裡給出了具體要找的字串,我們要做的就是對它進行8個方向的搜尋,...

洛谷 P1169 題解

請你在乙個黑白矩陣中選出乙個長方形 含正方形 和正方形的子矩陣,使得所有相鄰的點顏色不一樣。矩陣大小 兩條邊都 2000 2000 2 000輸入 3 31 0 1 0 1 0 1 0 0輸出4 6解釋給定矩陣 正方形 長方形 我的控制台是萌萌噠 ffc0cb粉色 乙個小技巧 如果您的控制台是像我的...

題解 洛谷 P3332

題目描述 權值線段樹套線段樹板子題 首先觀察題目,判斷為二維偏序問題 操作1為區間修改,所以一定是外部線段樹維護權值,內部線段樹維護所在區間,否則時間複雜度 qwq 為方便查詢,雜湊時我採用雜湊每個數的相反數的方法將求第k大轉換為求第k小 詢問可以直接想到的做法就是二分答案,查詢1 ans在區間內的...