題目描述:
一棵樹n~1e5,求出有多少個無序對(a,b,c),使得沒有乙個簡單路徑能夠一筆畫過abc.
題解:沒有簡單路徑,不好弄.我們更熟悉的是簡單路徑.一筆帶過,那麼就是求出有幾個簡單路徑的對數.簡單路徑3個點,一定要想到中間的那個點,列舉中間的那個點是誰,那麼剩下的兩個分別分布在岔路上,就是正常的橫著dp.
重點:乙個轉化,把非簡單路徑轉化為簡單路徑,之後3個點列舉強制是中間的那個點.之後樹形dp
**:
#pragma comment(linker, "/stack:1024000000,1024000000")
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define clr(a) memset(a, 0, sizeof(a))
#define rep(i, a, b) for(ll i = a;i < b;i++)
#define rep_d(i, a, b) for(ll i = a;i <= b;i++)
typedef
long
long ll;
using
namespace
std;
const ll maxn = 1e5 + 100;
vector
g[maxn];
ll n, dp[maxn];
ll ans;
ll o;
void dfs(ll u, ll fa)//dp[u]指的u為根的點的個數
}dp[u] = sum;
ans += (n - sum)*(tmp);
}void solve()
int main()
rep_d(i, 1, n - 1)
solve();
}return
0;}
python有幾個版本 python有幾個版本
python的3.0版本,常被稱為python 3000,或簡稱py3k。相對於python的早期版本,這是乙個較大的公升級。為了不帶入過多的累贅,python 3.0在設計的時候沒有考慮向下相容。許多針對早期python版本設計的程式都無法在python 3.0上正常執行。為了照顧現有程式,pyt...
細胞有幾個
一矩形陣列由數字0到9組成,數字1到9代表細胞,細胞的定義為沿細胞數字上下左右還是細胞數字則為同一細胞,求給定矩形陣列的細胞個數。如 陣列 4 10 有4個細胞。輸入有多行,第一行表示矩陣陣列的行數m和列數n m 70,n 70 接下來的m行n列為0 9等10個數字構成的矩陣。輸出細胞個數。4 10...
Spark Streaming簡介 有狀態運算元
spark streaming是微批次處理方式,批處理間隔是spark streaming是的核心概念和關鍵引數。spark streaming需要單獨乙個節點來接收資料,所以spark windowlength 視窗長度 視窗的持久時間 執行一次持續多少個時間單位 slideinterval 滑動...