HOJ2064 - Journey to Tibet - 并查集+暴力
2017-08-13 11:34
375 查看
Journey to Tibet
题目链接分类:
dsu
brute force
1.题意概述
给出你n(1≤n≤1000)个寺庙的坐标,相邻两个寺庙,你最多只能走30km现在问你总哪个起点出发,能够走尽可能多的寺庙,相同则输出输入编号的最小值。2.解题思路
这题本质是求最大的连通块,连通问题,我们都可以考虑用并查集维护,父亲就是集合里面id最小的,因为n很小,我们O(n2)地暴力维护任意两个寺庙的最短路径,然后再扫一遍集合求出最大值即可。3.AC代码
vector<int> g ; struct node { int x, y, c; } p ; int pa ; void init() { rep(i, 0, N) { g[i].clear(); pa[i] = i; } } int find(int x) { if (x == pa[x]) return x; return pa[x] = find(pa[x]); } void merge(int a, int b) { int a1 = find(a); int b1 = find(b); if (a1 == b1) return; if (a1 < b1) pa[b1] = a1; else pa[a1] = b1; } int getdis(int a, int b) { return (p[a].x - p[b].x) * (p[a].x - p[b].x) + (p[a].y - p[b].y) * (p[a].y - p[b].y); } inline void solve() { int n; while (~scanf("%d", &n) && n) { init(); rep(i, 1, n + 1) scanf("%d%d%d", &p[i].x, &p[i].y, &p[i].c); rep(i, 1, n) { rep(j, i + 1, n + 1) { int dis = getdis(i, j); if (dis <= 900) merge(i, j); } } rep(i, 1, n + 1) { int fa = find(i); g[fa].pb(i); } int P = 1, ans = 0; rep(i, 1, n + 1) { int sum = 0; int u = i; rep(j, 0, SZ(g[i])) { u = min(u, g[i][j]); sum += p[g[i][j]].c; } if (sum > ans) { ans = sum; P = u; } else if (ans == sum && u < P) P = u; } printf("%d %d\n", P, ans); } }
相关文章推荐
- 并查集 HOJ 2064 Journey to Tibet
- Hoj 2064 Journey to Tibet(递归)
- HOJ 2064 Journey to Tibet (DFS)
- Hoj 2064 Journey to Tibet
- HOJ Journey to Tibet(小毛病大问题,下标搞混了,导致很严重的后果)
- hackerrank Journey to the Moon(并查集)
- HackerRank - journey-to-the-moon 【并查集】
- Journey to SQLAuthority
- POJ:2914 Minimum Cut(暴力枚举并查集)
- Addison-Wesley - The Pragmatic Programmer: From Journeyman to Master
- hdu 1598(并查集(krustra)+暴力枚举)
- Codeforces Round #360 (Div. 1) D Dividing Kingdom II(并查集+暴力) ★ ★
- hdu 1598 暴力+并查集
- HDOJ 3682 To Be an Dream Architect 暴力
- Beginning the journey of WCF, and look forward to future.
- HOJ 2634 - How to earn more(网络流’最小割)
- HOJ 2634 How to earn more
- 杭电1598 find the most comfortable road(并查集暴力求解)
- hdu 1081 To The Max(暴力枚举+最大连续子数组和)
- Zuul 2 : The Netflix Journey to Asynchronous, Non-Blocking Systems