題意:http://mp.weixin.QQ.com/s/G2mjArjpgp7Ihd3k_WS_Lw
題解:http://mp.weixin.qq.com/s/ITNKOywnVn0QDC-hYYl_5Q
補充:規律?公式?有點想不通。。。只能嘗試簡單理解。
答案 =
首先,上式只能用于完全圖。前半部分就是組合,從n個點中選3個點組成一個三角形,后半部分為每個點紅邊數乘以藍邊數之和除以2。
主要是后半部分的理解,紅邊乘以藍邊可以理解為一個點引出的紅邊和藍邊的組合。對于一個三角形若三邊為同一種顏色,則必定不會被去掉,若紅藍比例為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;}
新聞熱點
疑難解答