SRM 570 div2
2013-02-19 10:01
246 查看
250pt 和 500pt都是简单题,500pt暴力就可以。。。
1000pt:
题意:给一棵树,求这棵树中不同子树的个数。
解:f[i]表示以i点为根节点所包含的子数的个数。
f[i] *= (f[j] + 1) 其中i -> j有边相连,+1表示不选以j为根的这棵子树;
dfs;
1000pt:
题意:给一棵树,求这棵树中不同子树的个数。
解:f[i]表示以i点为根节点所包含的子数的个数。
f[i] *= (f[j] + 1) 其中i -> j有边相连,+1表示不选以j为根的这棵子树;
dfs;
int mp[60][60]; bool vis[60]; LL ans; class CentaurCompanyDiv2 { public: LL dfs(int u) { int i; vis[u] = true; LL cnt = 1; for(i = 1; i <= 51; ++i) { if(mp[u][i] == 0) continue; if(!vis[i]) { cnt = cnt * (dfs(i) + 1); } } ans += cnt; //printf("%lld %lld\n", ans, cnt); return cnt; } long long count(vector <int> a, vector <int> b) { int i, n = a.size(); CL(mp, 0); CL(vis, false); for(i = 0; i < n; ++i) { mp[a[i]][b[i]] = 1; mp[b[i]][a[i]] = 1; } ans = 1; dfs(a[0]); return ans; } };
相关文章推荐
- SRM 570 DIV1 550 CentaurCompany
- SRM 570 div2
- TC SRM 570 div2 1000【Tree,树上统计】
- SRM 570 DIV2 1000 CentaurCompany
- Topcoder SRM 677 div2
- SRM 551 div2
- topcoder srm 370 div1
- TopCoder算法竞赛题3:SRM 147 DIV 2, 250-point
- SRM 683 div1 hard
- TopCoder SRM 597 Div1 第3题
- SRM 464 DIV1 500 2-sat 思路和hdu3622基本差不多
- TC srm 632 div1
- srm 558 div1 1000 SurroundingGame(最小割构图题)
- SRM 598 DIV2 1000 FoxAndFencingEasy
- TopCoder SRM 710 Div2 Hard MinMaxMax Floyd最短路变形
- TopCoder SRM 634 Div2 Problem 1000 - SpecialStrings
- Topcoder SRM 635 Div2 1000 (一种 O(n) 求一棵树中最长连续边 长度的方法)
- Topcoder SRM 148 Div2 1000(dfs搜索+hash判重)
- SRM 564 div1
- TopCoder SRM 604 Div1 第1题