割點的題目,一定要考慮全面。注意有序點對,必須×2。
因為刪掉割點的所有邊後,可能形成的連通塊有:
1、孤單的節點i自己 2、i的兒子的子樹們 3、除了這些點,剩下的所有點構成乙個
//許可權題
#include #define n 100010
#define m 500010
#include using namespace std;
typedef long long ll;
struct adj e[2*m];
int head[n], n, m, cnt = 1, num = 0, size[n], dfn[n], low[n];
ll ans[n];
inline int read()
return x;
}inline void ins(int x, int y)
inline void tarjan(int x)
}else low[x] = min(low[x], dfn[y]);
} ans[x]+= (ll)t * (n - t - 1);
}int main()
tarjan(1);
for(int i = 1; i <= n; ++i) printf("%lld\n", (ans[i] + n - 1) * 2);
return 0;
}
bzoj 1123 tarjan 乘法原理
題意 n個點,m條雙向邊,問刪除每個點後,對於有序數對 x,y 滿足x,y互不連通的數對數 即 1,2 與 2,1 算2對 其中,被刪掉的點也應被統計。題意明白以後,一眼看過去就是tarjan 因為要求統計被刪除的點,所以每個點的基礎答案為 n 1 2 如果刪去的點不是割點,則它除了基礎答案外不會再...
1123 好配對(想法題 暴力 模擬)
link 時間限制 1000ms 單點時限 1000ms 記憶體限制 256mb 給定兩個序列a和b,每個序列中可能含有重複的數字。乙個配對 i,j 是乙個好配對當從第乙個序列中選出乙個數ai,再從第二個序列中選出乙個數bj且滿足ai bj。給出兩個序列,問存在多少個好配對。輸入包含多組資料,資料第...
BZOJ 1123 tarjan求割點 組合數學
byteotia城市有n個 towns m條雙向roads.每條 road 連線 兩個不同的 towns 沒有重複的road.所有towns連通。input 輸入n 100000 m 500000及m條邊output 輸出n個數,代表如果把第i個點去掉,將有多少對點不能互通。sample input...