Data Structures
yurio7r
ipy8pyp
展开
-
POJ 1470 Closest Common Ancestors
输入搞得这么复杂。 #include #include #include #include using namespace std; const int MAX = 1005; int fa[MAX], r[MAX], vis[MAX], ancestor[MAX]; vector tree[MAX]; vector q[MAX]; map m; int flag[MAX]; inl原创 2016-04-02 12:20:46 · 374 阅读 · 0 评论 -
HDU 1875 畅通工程再续
居然是1A。和前面写过的一道修电脑的并查集的题目很像。 #include #include #include #include #include using namespace std; const int MAX = 205; int fa[MAX], r[MAX]; struct EDGE { int from, to; double cost; EDG原创 2016-03-25 01:05:11 · 393 阅读 · 0 评论 -
HDU 1863 畅通工程
刚开始,写错一个变量名,没有被声明的变量,结果编译器没有查出错,导致我一直结果不正确,还有就是在最后一定要把vector数组清空掉。 #include #include #include #include #include #include using namespace std; const int MAX = 105; const int INF = 0x3f3f3f; int原创 2016-03-25 00:26:27 · 325 阅读 · 0 评论 -
HDU 1233 还是畅通工程
赤裸裸的最小生成树啊。 #include #include #include #include using namespace std; const int MAX = 105; int fa[MAX], r[MAX]; struct EDGE { int from, to, cost; }edge[MAX * MAX]; bool comp(EDGE a, EDGE b)原创 2016-03-24 23:17:34 · 393 阅读 · 0 评论 -
51nod 1212 无向图最小生成树
prim算法,为什么我另一道题就错了呢。 #include #include #include #include #include #include using namespace std; const int INF = 0x3f3f3f; const int MAX = 1e3 + 5; int flag[MAX], min_cost[MAX]; struct EDGE {原创 2016-03-24 17:58:36 · 663 阅读 · 0 评论 -
HDU 1102 Constructing Roads
用的kruskal算法,主要就是把已经连接的路标记连接上,然后再求最小生成树就行了。 #include #include using namespace std; const int MAX = 1e4 + 5; struct EDGE { int from, to , cost; }edge[MAX]; int n, q; int fa[105], r[105]; int co原创 2016-03-24 10:04:39 · 364 阅读 · 0 评论 -
LightOJ 1080 Binary Simulation
线段树模板题,开始用scanf("%c")一直错。。。 #include #include #include const int MAX = 1e5 + 5; char arr[MAX]; int res[3 * MAX]; void update(int idx, int st, int ed, int q_st, int q_ed) { if (st == q_st && q_e原创 2016-03-12 16:16:52 · 596 阅读 · 0 评论 -
LightOJ 1112 Curious Robin Hood
全用int才对,树状数组。 #include #include #include const int MAX = 1e5 + 5; int arr[MAX]; int n, q; inline int lowbit(int x) { return x & (-x); } int update(int k, int num) { while (k <= n) { arr[k]原创 2016-03-12 11:32:07 · 409 阅读 · 0 评论 -
HDU 1213 How Many Tables
统计有多少个集合,只要fa[i] == i;就可以算作是一个单独的集合。 #include #include const int MAX = 1e3 + 5; int fa[MAX], r[MAX]; void init(int n) { for (int i = 1; i <= n; ++i) { fa[i] = i; r[i] = 1;原创 2016-03-23 14:55:28 · 356 阅读 · 0 评论 -
POJ 1611 The Suspects
辅助数组cnt,统计节点数目。 #include #include using namespace std; const int MAX = 1e3 + 5; int x[MAX], y[MAX], fa[MAX], flag[MAX], r[MAX]; int n, d; void init(int n) { for (int i = 1; i <= n; ++i) {原创 2016-03-23 14:37:20 · 304 阅读 · 0 评论 -
POJ 2236 Wireless Network
#include #include using namespace std; const int MAX = 1e3 + 5; int x[MAX], y[MAX], fa[MAX], flag[MAX], r[MAX]; int n, d; void init(int n) { for (int i = 1; i <= n; ++i) { fa[i] =原创 2016-03-23 14:34:38 · 299 阅读 · 0 评论 -
POJ 2481 Cows
树状数组,我代码写得很清晰啊,(●ˇ∀ˇ●) #include #include #include #include using namespace std; const int MAX = 1e5 + 5; struct NODE { int s, e, id; bool operator==(NODE& tmp) { return this原创 2016-03-21 19:59:35 · 305 阅读 · 0 评论 -
POJ 1330 Nearest Common Ancestors
在线LCA#include #include #include #include using namespace std; const int MAX = 10005; const int INF = 0x3f3f3f; int depth[MAX], fa[MAX], flag[MAX]; vector tree[MAX]; void file() { freopen("in原创 2016-04-02 20:11:42 · 278 阅读 · 0 评论 -
lightOJ 1082 Array Queries
模板水题,套模板。。。 #include #include const int MAX = 1e5 + 5; int arr[5 * MAX]; int num; void update(int st, int ed, int id, int pos, int val) { if (st == pos && pos == ed) { arr[id] = val; return原创 2016-03-10 00:30:55 · 450 阅读 · 0 评论 -
HDU 1166 敌兵布阵
裸的树状数组。#include #include using namespace std; const int MAX = 5e4 + 5; int arr[MAX]; int n; int lowbit(int x) { return x & (-x); } int update(int k, int num) { while (k <= n) {原创 2016-03-21 17:23:39 · 295 阅读 · 0 评论 -
LightOJ 1083 Histogram
单调栈。 #include #include #include using namespace std; typedef long long ll; const int MAX = 3e4 + 5; ll arr[MAX]; struct NODE { ll l, val; NODE(ll tmp_l = 0, ll tmp_val = 0) : l(tmp_l), val(tm原创 2016-03-14 20:13:25 · 791 阅读 · 0 评论