看了網上各種大神的樹的分治的模板,然後自己敲了一個。。。直接上**了,晚上再寫一個學習筆記, 喪心病狂的poj,上次一直跪在vector上,這次覺得不用vector寫了。。。
#include #include #include #include #include #include #include #define ll long long#define inf 1<<30
using namespace std;
const int n = 10000+5;
int cnt,s_max,rt,ans,n,k,num,list[n];///list表裝的是整棵子樹的節點
int size,ss[n];///size表示的是分出來的樹的總結點數,ss表示該每顆子樹的最大節點數
int son[n],d[n],head[n<<2]; ///儲存節點子樹的最大節點值
bool vis[n];///vis表示刪除的節點
struct edgee[n<<2];
void add_edge(int u,int v,int w)
///找重心
void dfs_0(int u,int fa)
ss[u] = tem;
}void getroot(int u,int fa)
return ret;
}void solve(int u)
}}void init()
int main()
solve(1);
printf("%d\n",ans);
}return 0;
}
POJ 1741 Tree 點分治
因為樹上的路徑只有兩種 經過根的和沒有經過根的 所以可以以根進行分治計算 找重心 以重心為根 計算經過根的答案 分治根的每顆子樹 include include include include define ll long long using namespace std const int n 1...
poj 1741 Tree(點分治)
題解 一道點分治的模版題,直線上的分治就沒什麼好說了簡單的這是一道樹上的分治模版題 其實分治就是和二分差不多,樹上的分治也就是不斷的找樹的重心然後再找經過重心的有幾條路是滿足條件的。樹上的分治有具體的解析可以去看看理解一下挺簡單的,然後差不多樹上的分治都可以利用這個模版然後稍微改一下就好。 incl...
POJ 1741 Tree 點分治
題目分析 這貌似是做過第三道以tree命名的題目了。 聽說樹分治的 都很長,一直嚇得不敢寫,有生之年終於切掉這題。 點分治模板題目。自己yy了好久才寫出來。 然後1a了,開心o include include include include define maxn 20005 define inf ...