-
Notifications
You must be signed in to change notification settings - Fork 0
/
acwing408.h
451 lines (389 loc) · 9.11 KB
/
acwing408.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
//
// Created by tategotoazarasi on 24-5-7.
//
#ifndef PROBLEMSCPP_ACWING408_H
#define PROBLEMSCPP_ACWING408_H
#include "templates.h"
#include <iostream>
#include <map>
#include <set>
#include <stack>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>
using namespace std;
namespace acwing {
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x): val(x), left(NULL), right(NULL) {}
};
namespace acwing3378 {
typedef struct student {
string name;
int score;
} student;
int main(istream & /*cin*/, ostream & /*cout*/);
};// namespace acwing3378
namespace acwing3376 {
typedef struct student {
string id;
int id_numeric;
int score;
} student;
int main(istream & /*cin*/, ostream & /*cout*/);
}// namespace acwing3376
namespace acwing3374 {
int main(istream & /*cin*/, ostream & /*cout*/);
}// namespace acwing3374
namespace acwing3757 {
struct ListNode {
int val;
struct ListNode *next;
};
void rearrangedList(struct ListNode *head);
void reverse(struct ListNode *head);
}// namespace acwing3757
namespace acwing3607 {
int main(istream & /*cin*/, ostream & /*cout*/);
}
namespace acwing3573 {
int main(istream & /*cin*/, ostream & /*cout*/);
}
namespace acwing3302_408 {
int main(istream & /*cin*/, ostream & /*cout*/);
}
namespace acwing3766 {
int pathSum(TreeNode *root, int level);
int pathSum(TreeNode *root);
}// namespace acwing3766
namespace acwing148 {
int main(istream & /*cin*/, ostream & /*cout*/);
}
namespace acwing836_408 {
int find(int x);
void merge(int x, int y);
int main(istream & /*cin*/, ostream & /*cout*/);
}// namespace acwing836_408
namespace acwing18 {
TreeNode *rebuild(vector<int> &inorder, int in_begin, int in_end, vector<int> &preorder, int pre_begin, int pre_end);
TreeNode *buildTree(vector<int> &preorder, vector<int> &inorder);
}// namespace acwing18
/**
* @brief 3786. 二叉排序树
*/
namespace acwing3786 {
void insert(TreeNode *&root, int x);
void remove(TreeNode *&root, int x);
int get_pre(TreeNode *root, int x);
int get_suc(TreeNode *root, int x);
int main(istream & /*cin*/, ostream & /*cout*/);
}// namespace acwing3786
/**
* @brief 149. 荷马史诗
*/
namespace acwing149 {
class huff_tree {
public:
u_int64_t val;
u_int64_t height;
vector<huff_tree *> children;
huff_tree(u_int64_t val, u_int64_t height, u_int64_t k): val(val), height(height), children(k, nullptr) {};
};
struct Compare {
bool operator()(huff_tree *const &a, huff_tree *const &b);
};
int main(istream & /*cin*/, ostream & /*cout*/);
}// namespace acwing149
/**
* @brief 831. KMP字符串
*/
namespace acwing831_408 {
vector<int> get_next(string s);
int main(istream & /*cin*/, ostream & /*cout*/);
}// namespace acwing831_408
/**
* @brief 3385. 玛雅人的密码
*/
namespace acwing3385 {
int main(istream & /*cin*/, ostream & /*cout*/);
}
/**
* @brief 3429. 全排列
*/
namespace acwing3429 {
void dfs(vector<char> &stk, int p, ostream &, string s);
int main(istream & /*cin*/, ostream & /*cout*/);
}// namespace acwing3429
/**
* @brief 858. Prim算法求最小生成树
*/
namespace acwing858_408 {
// Custom hash function for pair<int, int>
struct pair_hash {
template<class T1, class T2>
size_t operator()(const pair<T1, T2> &p) const;
};
// Custom equal function for pair<int, int>
struct pair_equal {
template<class T1, class T2>
bool operator()(const pair<T1, T2> &p1, const pair<T1, T2> &p2) const;
};
// Custom comparator for tuple<int, int, int>
struct tuple_compare {
bool operator()(const tuple<int, int, int> &t1, const tuple<int, int, int> &t2);
};
int main(istream & /*cin*/, ostream & /*cout*/);
}// namespace acwing858_408
/**
* @brief 849. Dijkstra求最短路 I
*/
namespace acwing849_408 {
int main(istream & /*cin*/, ostream & /*cout*/);
}
/**
* @brief 854. Floyd求最短路
*/
namespace acwing854_408 {
int main(istream & /*cin*/, ostream & /*cout*/);
}
/**
* @brief 848. 有向图的拓扑序列
*/
namespace acwing848_408 {
int main(istream & /*cin*/, ostream & /*cout*/);
}
/**
* @brief 3402. 等差数列
*/
namespace acwing3402 {
int main(istream & /*cin*/, ostream & /*cout*/);
}
/**
* @brief 3472. 八皇后
*/
namespace acwing3472 {
void dfs(vector<vector<bool>> board, int current_row, vector<string> &ans, vector<int> &ans_stk);
int main(istream & /*cin*/, ostream & /*cout*/);
}// namespace acwing3472
/**
* @brief 3439. 首字母大写
*/
namespace acwing3439 {
int main(istream & /*cin*/, ostream & /*cout*/);
}
/**
* @brief 3379. 反序输出
*/
namespace acwing3379 {
int main(istream & /*cin*/, ostream & /*cout*/);
}
/**
* @brief 3390. 特殊乘法
*/
namespace acwing3390 {
int main(istream & /*cin*/, ostream & /*cout*/);
}
/**
* @brief 3397. 众数
*/
namespace acwing3397 {
int main(istream & /*cin*/, ostream & /*cout*/);
}
/**
* @brief 3426. 糖果分享游戏
*/
namespace acwing3426 {
bool ended(vector<int> &candy);
int main(istream & /*cin*/, ostream & /*cout*/);
}// namespace acwing3426
/**
* @brief 3406. 日志排序
*/
namespace acwing3406 {
struct task {
string name;
string date_time;
double duration;
string raw_line;
};
int main(istream & /*cin*/, ostream & /*cout*/);
}// namespace acwing3406
/**
* @brief 3447. 子串计算
*/
namespace acwing3447 {
int main(istream & /*cin*/, ostream & /*cout*/);
}
/**
* @brief 3820. 未出现过的最小正整数
*/
namespace acwing3820 {
int findMissMin(vector<int> &nums);
}
/**
* @brief 840. 模拟散列表
*/
namespace acwing840_408 {
int main(istream & /*cin*/, ostream & /*cout*/);
}
/**
* @brief 3542. 查找
*/
namespace acwing3542 {
int main(istream & /*cin*/, ostream & /*cout*/);
}
/**
* @brief 3581. 单词识别
*/
namespace acwing3581 {
int main(istream & /*cin*/, ostream & /*cout*/);
}
/**
* @brief 785. 快速排序
*/
namespace acwing785_408 {
void qs(vector<int> &vec, int l, int r);
int main(istream & /*cin*/, ostream & /*cout*/);
}// namespace acwing785_408
/**
* @brief 3504. 字符串转换整数
*/
namespace acwing3504 {
int main(istream & /*cin*/, ostream & /*cout*/);
}
/**
* @brief 1603. 整数集合划分
*/
namespace acwing1603 {
int main(istream & /*cin*/, ostream & /*cout*/);
}
/**
* @brief 3527. 旋转矩阵
*/
namespace acwing3527 {
int main(istream & /*cin*/, ostream & /*cout*/);
}
/**
* @brief 3534. 矩阵幂
*/
namespace acwing3534 {
Matrix getMat(vector<Matrix *> &mat, int p);
int main(istream & /*cin*/, ostream & /*cout*/);
}// namespace acwing3534
/**
* @brief 3535. C翻转
*/
namespace acwing3535 {
int main(istream & /*cin*/, ostream & /*cout*/);
}
/**
* @brief 3874. 三元组的最小距离
*/
namespace acwing3874 {
int main(istream & /*cin*/, ostream & /*cout*/);
}
/**
* @brief 52. 数组中出现次数超过一半的数字
*/
namespace acwing52 {
int moreThanHalfNum_Solution(vector<int> &nums);
}
/**
* @brief 3392. 递推数列
*/
namespace acwing3392 {
int main(istream & /*cin*/, ostream & /*cout*/);
}
/**
* @brief 3433. 吃糖果
*/
namespace acwing3433 {
int main(istream & /*cin*/, ostream & /*cout*/);
}
/**
* @brief 3441. 重复者
*/
namespace acwing3441 {
int main(istream & /*cin*/, ostream & /*cout*/);
void draw(const vector<vector<char>> &g, int n, int level, vector<vector<char>> &canvas, int x, int y, int space);
}// namespace acwing3441
/**
* @brief 2. 01背包问题
*/
namespace acwing2 {
struct status {
int w;
vector<bool> free;
};
int main(istream & /*cin*/, ostream & /*cout*/);
}// namespace acwing2
/**
* @brief 3445. 点菜问题
*/
namespace acwing3445 {
struct status {
int v;
vector<bool> free;
};
int main(istream & /*cin*/, ostream & /*cout*/);
}// namespace acwing3445
/**
* @brief 3442. 神奇的口袋
*/
namespace acwing3442 {
int main(istream & /*cin*/, ostream & /*cout*/);
}// namespace acwing3442
/**
* @brief 3382. 整数拆分
*/
namespace acwing3382 {
int main(istream & /*cin*/, ostream & /*cout*/);
}
/**
* @brief 3389. N 的阶乘
*/
namespace acwing3389 {
int main(istream & /*cin*/, ostream & /*cout*/);
}
/**
* @brief 3448. 基本算术
*/
namespace acwing3448 {
int main(istream & /*cin*/, ostream & /*cout*/);
}
/**
* @brief 3453. 整数查询
*/
namespace acwing3453 {
int main(istream & /*cin*/, ostream & /*cout*/);
}
/**
* @brief 3380. 质因数的个数
*/
namespace acwing3380 {
bool add(long long n);
int main(istream & /*cin*/, ostream & /*cout*/);
}// namespace acwing3380
/**
* @brief 3377. 约数的个数
*/
namespace acwing3377 {
int main(istream & /*cin*/, ostream & /*cout*/);
}
/**
* @brief 3507. 阶乘的末尾0
*/
namespace acwing3507 {
int main(istream & /*cin*/, ostream & /*cout*/);
}
/**
* @brief 3484. 整除问题
*/
namespace acwing3484 {
int main(istream & /*cin*/, ostream & /*cout*/);
}
}// namespace acwing
#endif//PROBLEMSCPP_ACWING408_H