題意:http://mp.weixin.QQ.com/s/G2mjArjpgp7Ihd3k_WS_Lw
題解:http://mp.weixin.qq.com/s/ITNKOywnVn0QDC-hYYl_5Q
補(bǔ)充:規(guī)律?公式?有點(diǎn)想不通。。。只能嘗試簡單理解。
答案 =
首先,上式只能用于完全圖。前半部分就是組合,從n個(gè)點(diǎn)中選3個(gè)點(diǎn)組成一個(gè)三角形,后半部分為每個(gè)點(diǎn)紅邊數(shù)乘以藍(lán)邊數(shù)之和除以2。
主要是后半部分的理解,紅邊乘以藍(lán)邊可以理解為一個(gè)點(diǎn)引出的紅邊和藍(lán)邊的組合。對于一個(gè)三角形若三邊為同一種顏色,則必定不會被去掉,若紅藍(lán)比例為1:2或者2:1,則該三角形會被選中兩次,也就是去掉兩次,所以累加之后要除以2。。。 = =
#include <bits/stdc++.h>using namespace std;typedef long long LL;const int N = 1000005;int deg[N];int main() { int n, m, u, v; scanf("%d%d", &n, &m); LL org = 1LL * n * (n - 1) * (n - 2) / 6; for(int i = 0; i < m; i++) { scanf("%d%d", &u, &v); deg[u]++; deg[v]++; } LL tmp = 0; for(int i = 1; i <= n; i++) { tmp += 1LL * deg[i] * (n - 1 - deg[i]); } PRintf("%I64d/n", org - tmp / 2); return 0;}
新聞熱點(diǎn)
疑難解答
圖片精選