diff --git a/README.md b/README.md
index 41e851012..8918c83c2 100644
--- a/README.md
+++ b/README.md
@@ -70,6 +70,12 @@ LeetCode Problems' Solutions
| # | Title | Solution | Difficulty |
| :-: | - | - | :-: |
+| 1521 | [Find a Value of a Mysterious Function Closest to Target](https://leetcode.com/problems/find-a-value-of-a-mysterious-function-closest-to-target "找到最接近目标值的函数值") | [Go](problems/find-a-value-of-a-mysterious-function-closest-to-target) | Hard |
+| 1520 | [Maximum Number of Non-Overlapping Substrings](https://leetcode.com/problems/maximum-number-of-non-overlapping-substrings "最多的不重叠子字符串") | [Go](problems/maximum-number-of-non-overlapping-substrings) | Medium |
+| 1519 | [Number of Nodes in the Sub-Tree With the Same Label](https://leetcode.com/problems/number-of-nodes-in-the-sub-tree-with-the-same-label "子树中标签相同的节点数") | [Go](problems/number-of-nodes-in-the-sub-tree-with-the-same-label) | Medium |
+| 1518 | [Water Bottles](https://leetcode.com/problems/water-bottles "换酒问题") | [Go](problems/water-bottles) | Easy |
+| 1517 | [Find Users With Valid E-Mails](https://leetcode.com/problems/find-users-with-valid-e-mails) 🔒 | [MySQL](problems/find-users-with-valid-e-mails) | Easy |
+| 1516 | [Move Sub-Tree of N-Ary Tree](https://leetcode.com/problems/move-sub-tree-of-n-ary-tree) 🔒 | [Go](problems/move-sub-tree-of-n-ary-tree) | Hard |
| 1515 | [Best Position for a Service Centre](https://leetcode.com/problems/best-position-for-a-service-centre "服务中心的最佳位置") | [Go](problems/best-position-for-a-service-centre) | Hard |
| 1514 | [Path with Maximum Probability](https://leetcode.com/problems/path-with-maximum-probability "概率最大的路径") | [Go](problems/path-with-maximum-probability) | Medium |
| 1513 | [Number of Substrings With Only 1s](https://leetcode.com/problems/number-of-substrings-with-only-1s "仅含 1 的子串数") | [Go](problems/number-of-substrings-with-only-1s) | Medium |
diff --git a/problems/find-a-value-of-a-mysterious-function-closest-to-target/README.md b/problems/find-a-value-of-a-mysterious-function-closest-to-target/README.md
new file mode 100644
index 000000000..42751a46d
--- /dev/null
+++ b/problems/find-a-value-of-a-mysterious-function-closest-to-target/README.md
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+[< Previous](../maximum-number-of-non-overlapping-substrings "Maximum Number of Non-Overlapping Substrings")
+
+Next >
+
+## [1521. Find a Value of a Mysterious Function Closest to Target (Hard)](https://leetcode.com/problems/find-a-value-of-a-mysterious-function-closest-to-target "找到最接近目标值的函数值")
+
+

+
+Winston was given the above mysterious function func
. He has an integer array arr
and an integer target
and he wants to find the values l
and r
that make the value |func(arr, l, r) - target|
minimum possible.
+
+Return the minimum possible value of |func(arr, l, r) - target|
.
+
+Notice that func
should be called with the values l
and r
where 0 <= l, r < arr.length
.
+
+
+Example 1:
+
+
+Input: arr = [9,12,3,7,15], target = 5
+Output: 2
+Explanation: Calling func with all the pairs of [l,r] = [[0,0],[1,1],[2,2],[3,3],[4,4],[0,1],[1,2],[2,3],[3,4],[0,2],[1,3],[2,4],[0,3],[1,4],[0,4]], Winston got the following results [9,12,3,7,15,8,0,3,7,0,0,3,0,0,0]. The value closest to 5 is 7 and 3, thus the minimum difference is 2.
+
+
+Example 2:
+
+
+Input: arr = [1000000,1000000,1000000], target = 1
+Output: 999999
+Explanation: Winston called the func with all possible values of [l,r] and he always got 1000000, thus the min difference is 999999.
+
+
+Example 3:
+
+
+Input: arr = [1,2,4,8,16], target = 0
+Output: 0
+
+
+
+Constraints:
+
+
+ 1 <= arr.length <= 10^5
+ 1 <= arr[i] <= 10^6
+ 0 <= target <= 10^7
+
+
+### Related Topics
+ [[Bit Manipulation](../../tag/bit-manipulation/README.md)]
+ [[Segment Tree](../../tag/segment-tree/README.md)]
+ [[Binary Search](../../tag/binary-search/README.md)]
+
+### Hints
+
+Hint 1
+If the and value of sub-array arr[i...j] is ≥ the and value of the sub-array arr[i...j+1].
+
+
+
+Hint 2
+For each index i using binary search or ternary search find the index j where |target - AND(arr[i...j])| is minimum, minimize this value with the global answer.
+
diff --git a/problems/find-users-with-valid-e-mails/README.md b/problems/find-users-with-valid-e-mails/README.md
new file mode 100644
index 000000000..ce7862879
--- /dev/null
+++ b/problems/find-users-with-valid-e-mails/README.md
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+[< Previous](../move-sub-tree-of-n-ary-tree "Move Sub-Tree of N-Ary Tree")
+
+[Next >](../water-bottles "Water Bottles")
+
+## [1517. Find Users With Valid E-Mails (Easy)](https://leetcode.com/problems/find-users-with-valid-e-mails "")
+
+
diff --git a/problems/find-users-with-valid-e-mails/mysql_schemas.sql b/problems/find-users-with-valid-e-mails/mysql_schemas.sql
new file mode 100644
index 000000000..a9fe9964d
--- /dev/null
+++ b/problems/find-users-with-valid-e-mails/mysql_schemas.sql
@@ -0,0 +1,9 @@
+Create table If Not Exists Users (user_id int, name varchar(30), mail varchar(50));
+Truncate table Users;
+insert into Users (user_id, name, mail) values ('1', 'Winston', 'winston@leetcode.com');
+insert into Users (user_id, name, mail) values ('2', 'Jonathan', 'jonathanisgreat');
+insert into Users (user_id, name, mail) values ('3', 'Annabelle', 'bella-@leetcode.com');
+insert into Users (user_id, name, mail) values ('4', 'Sally', 'sally.come@leetcode.com');
+insert into Users (user_id, name, mail) values ('5', 'Marwan', 'quarz#2020@leetcode.com');
+insert into Users (user_id, name, mail) values ('6', 'David', 'david69@gmail.com');
+insert into Users (user_id, name, mail) values ('7', 'Shapiro', '.shapo@leetcode.com');
diff --git a/problems/maximum-number-of-non-overlapping-substrings/README.md b/problems/maximum-number-of-non-overlapping-substrings/README.md
new file mode 100644
index 000000000..05d056030
--- /dev/null
+++ b/problems/maximum-number-of-non-overlapping-substrings/README.md
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+[< Previous](../number-of-nodes-in-the-sub-tree-with-the-same-label "Number of Nodes in the Sub-Tree With the Same Label")
+
+[Next >](../find-a-value-of-a-mysterious-function-closest-to-target "Find a Value of a Mysterious Function Closest to Target")
+
+## [1520. Maximum Number of Non-Overlapping Substrings (Medium)](https://leetcode.com/problems/maximum-number-of-non-overlapping-substrings "最多的不重叠子字符串")
+
+Given a string s
of lowercase letters, you need to find the maximum number of non-empty substrings of s
that meet the following conditions:
+
+
+ - The substrings do not overlap, that is for any two substrings
s[i..j]
and s[k..l]
, either j < k
or i > l
is true.
+ - A substring that contains a certain character
c
must also contain all occurrences of c
.
+
+
+Find the maximum number of substrings that meet the above conditions. If there are multiple solutions with the same number of substrings, return the one with minimum total length. It can be shown that there exists a unique solution of minimum total length.
+
+Notice that you can return the substrings in any order.
+
+
+Example 1:
+
+
+Input: s = "adefaddaccc"
+Output: ["e","f","ccc"]
+Explanation: The following are all the possible substrings that meet the conditions:
+[
+ "adefaddaccc"
+ "adefadda",
+ "ef",
+ "e",
+ "f",
+ "ccc",
+]
+If we choose the first string, we cannot choose anything else and we'd get only 1. If we choose "adefadda", we are left with "ccc" which is the only one that doesn't overlap, thus obtaining 2 substrings. Notice also, that it's not optimal to choose "ef" since it can be split into two. Therefore, the optimal way is to choose ["e","f","ccc"] which gives us 3 substrings. No other solution of the same number of substrings exist.
+
+
+Example 2:
+
+
+Input: s = "abbaccd"
+Output: ["d","bb","cc"]
+Explanation: Notice that while the set of substrings ["d","abba","cc"] also has length 3, it's considered incorrect since it has larger total length.
+
+
+
+Constraints:
+
+
+ 1 <= s.length <= 10^5
+ s
contains only lowercase English letters.
+
+
+### Related Topics
+ [[Greedy](../../tag/greedy/README.md)]
+
+### Hints
+
+Hint 1
+Notice that it's impossible for any two valid substrings to overlap unless one is inside another.
+
+
+
+Hint 2
+We can start by finding the starting and ending index for each character.
+
+
+
+Hint 3
+From these indices, we can form the substrings by expanding each character's range if necessary (if another character exists in the range with smaller/larger starting/ending index).
+
+
+
+Hint 4
+Sort the valid substrings by length and greedily take those with the smallest length, discarding the ones that overlap those we took.
+
diff --git a/problems/maximum-width-of-binary-tree/README.md b/problems/maximum-width-of-binary-tree/README.md
index d94b75efe..90401c065 100644
--- a/problems/maximum-width-of-binary-tree/README.md
+++ b/problems/maximum-width-of-binary-tree/README.md
@@ -11,10 +11,12 @@
## [662. Maximum Width of Binary Tree (Medium)](https://leetcode.com/problems/maximum-width-of-binary-tree "二叉树最大宽度")
-Given a binary tree, write a function to get the maximum width of the given tree. The width of a tree is the maximum width among all levels. The binary tree has the same structure as a full binary tree, but some nodes are null.
+Given a binary tree, write a function to get the maximum width of the given tree. The maximum width of a tree is the maximum width among all levels.
The width of one level is defined as the length between the end-nodes (the leftmost and right most non-null nodes in the level, where the null
nodes between the end-nodes are also counted into the length calculation.
+It is guaranteed that the answer will in the range of 32-bit signed integer.
+
Example 1:
@@ -74,11 +76,14 @@
6 7
Output: 8
Explanation:The maximum width existing in the fourth level with the length 8 (6,null,null,null,null,null,null,7).
-
-
-Note: Answer will in the range of 32-bit signed integer.
+
+Constraints:
+
+
+ - The given binary tree will have between
1
and 3000
nodes.
+
### Related Topics
[[Tree](../../tag/tree/README.md)]
diff --git a/problems/move-sub-tree-of-n-ary-tree/README.md b/problems/move-sub-tree-of-n-ary-tree/README.md
new file mode 100644
index 000000000..2451c61bf
--- /dev/null
+++ b/problems/move-sub-tree-of-n-ary-tree/README.md
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+[< Previous](../best-position-for-a-service-centre "Best Position for a Service Centre")
+
+[Next >](../find-users-with-valid-e-mails "Find Users With Valid E-Mails")
+
+## [1516. Move Sub-Tree of N-Ary Tree (Hard)](https://leetcode.com/problems/move-sub-tree-of-n-ary-tree "")
+
+
+
+### Related Topics
+ [[Tree](../../tag/tree/README.md)]
+
+### Hints
+
+Hint 1
+Disconnect node p from its parent and append it to the children list of node q.
+
+
+
+Hint 2
+If q was in the sub-tree of node p (case 1), get the parent node of p and replace p in its children list with q.
+
+
+
+Hint 3
+If p was the root of the tree, make q the root of the tree.
+
diff --git a/problems/number-of-nodes-in-the-sub-tree-with-the-same-label/README.md b/problems/number-of-nodes-in-the-sub-tree-with-the-same-label/README.md
new file mode 100644
index 000000000..db85cd18a
--- /dev/null
+++ b/problems/number-of-nodes-in-the-sub-tree-with-the-same-label/README.md
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+[< Previous](../water-bottles "Water Bottles")
+
+[Next >](../maximum-number-of-non-overlapping-substrings "Maximum Number of Non-Overlapping Substrings")
+
+## [1519. Number of Nodes in the Sub-Tree With the Same Label (Medium)](https://leetcode.com/problems/number-of-nodes-in-the-sub-tree-with-the-same-label "子树中标签相同的节点数")
+
+Given a tree (i.e. a connected, undirected graph that has no cycles) consisting of n
nodes numbered from 0
to n - 1
and exactly n - 1
edges
. The root of the tree is the node 0
, and each node of the tree has a label which is a lower-case character given in the string labels
(i.e. The node with the number i
has the label labels[i]
).
+
+The edges
array is given on the form edges[i] = [ai, bi]
, which means there is an edge between nodes ai
and bi
in the tree.
+
+Return an array of size n
where ans[i]
is the number of nodes in the subtree of the ith
node which have the same label as node i
.
+
+A subtree of a tree T
is the tree consisting of a node in T
and all of its descendant nodes.
+
+
+Example 1:
+
+
+Input: n = 7, edges = [[0,1],[0,2],[1,4],[1,5],[2,3],[2,6]], labels = "abaedcd"
+Output: [2,1,1,1,1,1,1]
+Explanation: Node 0 has label 'a' and its sub-tree has node 2 with label 'a' as well, thus the answer is 2. Notice that any node is part of its sub-tree.
+Node 1 has a label 'b'. The sub-tree of node 1 contains nodes 1,4 and 5, as nodes 4 and 5 have different labels than node 1, the answer is just 1 (the node itself).
+
+
+Example 2:
+
+
+Input: n = 4, edges = [[0,1],[1,2],[0,3]], labels = "bbbb"
+Output: [4,2,1,1]
+Explanation: The sub-tree of node 2 contains only node 2, so the answer is 1.
+The sub-tree of node 3 contains only node 3, so the answer is 1.
+The sub-tree of node 1 contains nodes 1 and 2, both have label 'b', thus the answer is 2.
+The sub-tree of node 0 contains nodes 0, 1, 2 and 3, all with label 'b', thus the answer is 4.
+
+
+Example 3:
+
+
+Input: n = 5, edges = [[0,1],[0,2],[1,3],[0,4]], labels = "aabab"
+Output: [3,2,1,1,1]
+
+
+Example 4:
+
+
+Input: n = 6, edges = [[0,1],[0,2],[1,3],[3,4],[4,5]], labels = "cbabaa"
+Output: [1,2,1,1,2,1]
+
+
+Example 5:
+
+
+Input: n = 7, edges = [[0,1],[1,2],[2,3],[3,4],[4,5],[5,6]], labels = "aaabaaa"
+Output: [6,5,4,1,3,2,1]
+
+
+
+Constraints:
+
+
+ 1 <= n <= 10^5
+ edges.length == n - 1
+ edges[i].length == 2
+ 0 <= ai, bi < n
+ ai != bi
+ labels.length == n
+ labels
is consisting of only of lower-case English letters.
+
+
+### Related Topics
+ [[Depth-first Search](../../tag/depth-first-search/README.md)]
+ [[Breadth-first Search](../../tag/breadth-first-search/README.md)]
+
+### Hints
+
+Hint 1
+Start traversing the tree and each node should return a vector to its parent node.
+
+
+
+Hint 2
+The vector should be of length 26 and have the count of all the labels in the sub-tree of this node.
+
diff --git a/problems/unique-binary-search-trees/README.md b/problems/unique-binary-search-trees/README.md
index 18fe7f087..f95e1a39d 100644
--- a/problems/unique-binary-search-trees/README.md
+++ b/problems/unique-binary-search-trees/README.md
@@ -28,6 +28,13 @@
2 1 2 3
+
+Constraints:
+
+
+
### Related Topics
[[Tree](../../tag/tree/README.md)]
[[Dynamic Programming](../../tag/dynamic-programming/README.md)]
diff --git a/problems/water-bottles/README.md b/problems/water-bottles/README.md
new file mode 100644
index 000000000..cdee2ce27
--- /dev/null
+++ b/problems/water-bottles/README.md
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+[< Previous](../find-users-with-valid-e-mails "Find Users With Valid E-Mails")
+
+[Next >](../number-of-nodes-in-the-sub-tree-with-the-same-label "Number of Nodes in the Sub-Tree With the Same Label")
+
+## [1518. Water Bottles (Easy)](https://leetcode.com/problems/water-bottles "换酒问题")
+
+Given numBottles
full water bottles, you can exchange numExchange
empty water bottles for one full water bottle.
+
+The operation of drinking a full water bottle turns it into an empty bottle.
+
+Return the maximum number of water bottles you can drink.
+
+
+Example 1:
+
+
+
+
+Input: numBottles = 9, numExchange = 3
+Output: 13
+Explanation: You can exchange 3 empty bottles to get 1 full water bottle.
+Number of water bottles you can drink: 9 + 3 + 1 = 13.
+
+
+Example 2:
+
+
+
+
+Input: numBottles = 15, numExchange = 4
+Output: 19
+Explanation: You can exchange 4 empty bottles to get 1 full water bottle.
+Number of water bottles you can drink: 15 + 3 + 1 = 19.
+
+
+Example 3:
+
+
+Input: numBottles = 5, numExchange = 5
+Output: 6
+
+
+Example 4:
+
+
+Input: numBottles = 2, numExchange = 3
+Output: 2
+
+
+
+Constraints:
+
+
+ 1 <= numBottles <= 100
+ 2 <= numExchange <= 100
+
+
+### Related Topics
+ [[Greedy](../../tag/greedy/README.md)]
+
+### Hints
+
+Hint 1
+Simulate the process until there are not enough empty bottles for even one full bottle of water.
+
diff --git a/tag/binary-search/README.md b/tag/binary-search/README.md
index 507321fb8..525ef3fbe 100644
--- a/tag/binary-search/README.md
+++ b/tag/binary-search/README.md
@@ -9,6 +9,7 @@
| # | 题目 | 标签 | 难度 |
| :-: | - | - | :-: |
+| 1521 | [找到最接近目标值的函数值](../../problems/find-a-value-of-a-mysterious-function-closest-to-target) | [[位运算](../bit-manipulation/README.md)] [[线段树](../segment-tree/README.md)] [[二分查找](../binary-search/README.md)] | Hard |
| 1482 | [制作 m 束花所需的最少天数](../../problems/minimum-number-of-days-to-make-m-bouquets) | [[数组](../array/README.md)] [[二分查找](../binary-search/README.md)] | Medium |
| 1351 | [统计有序矩阵中的负数](../../problems/count-negative-numbers-in-a-sorted-matrix) | [[数组](../array/README.md)] [[二分查找](../binary-search/README.md)] | Easy |
| 1337 | [方阵中战斗力最弱的 K 行](../../problems/the-k-weakest-rows-in-a-matrix) | [[数组](../array/README.md)] [[二分查找](../binary-search/README.md)] | Easy |
diff --git a/tag/bit-manipulation/README.md b/tag/bit-manipulation/README.md
index fece1bc71..08245a2e8 100644
--- a/tag/bit-manipulation/README.md
+++ b/tag/bit-manipulation/README.md
@@ -9,6 +9,7 @@
| # | 题目 | 标签 | 难度 |
| :-: | - | - | :-: |
+| 1521 | [找到最接近目标值的函数值](../../problems/find-a-value-of-a-mysterious-function-closest-to-target) | [[位运算](../bit-manipulation/README.md)] [[线段树](../segment-tree/README.md)] [[二分查找](../binary-search/README.md)] | Hard |
| 1486 | [数组异或操作](../../problems/xor-operation-in-an-array) | [[位运算](../bit-manipulation/README.md)] [[数组](../array/README.md)] | Easy |
| 1461 | [检查一个字符串是否包含所有长度为 K 的二进制子串](../../problems/check-if-a-string-contains-all-binary-codes-of-size-k) | [[位运算](../bit-manipulation/README.md)] [[字符串](../string/README.md)] | Medium |
| 1457 | [二叉树中的伪回文路径](../../problems/pseudo-palindromic-paths-in-a-binary-tree) | [[位运算](../bit-manipulation/README.md)] [[树](../tree/README.md)] [[深度优先搜索](../depth-first-search/README.md)] | Medium |
diff --git a/tag/breadth-first-search/README.md b/tag/breadth-first-search/README.md
index 91218fbbe..bd49e533d 100644
--- a/tag/breadth-first-search/README.md
+++ b/tag/breadth-first-search/README.md
@@ -9,6 +9,7 @@
| # | 题目 | 标签 | 难度 |
| :-: | - | - | :-: |
+| 1519 | [子树中标签相同的节点数](../../problems/number-of-nodes-in-the-sub-tree-with-the-same-label) | [[深度优先搜索](../depth-first-search/README.md)] [[广度优先搜索](../breadth-first-search/README.md)] | Medium |
| 1490 | [克隆 N 叉树](../../problems/clone-n-ary-tree) 🔒 | [[树](../tree/README.md)] [[深度优先搜索](../depth-first-search/README.md)] [[广度优先搜索](../breadth-first-search/README.md)] [[哈希表](../hash-table/README.md)] | Medium |
| 1391 | [检查网格中是否存在有效路径](../../problems/check-if-there-is-a-valid-path-in-a-grid) | [[深度优先搜索](../depth-first-search/README.md)] [[广度优先搜索](../breadth-first-search/README.md)] | Medium |
| 1368 | [使网格图至少有一条有效路径的最小代价](../../problems/minimum-cost-to-make-at-least-one-valid-path-in-a-grid) | [[广度优先搜索](../breadth-first-search/README.md)] | Hard |
diff --git a/tag/depth-first-search/README.md b/tag/depth-first-search/README.md
index b14efd835..59f35ca12 100644
--- a/tag/depth-first-search/README.md
+++ b/tag/depth-first-search/README.md
@@ -9,6 +9,7 @@
| # | 题目 | 标签 | 难度 |
| :-: | - | - | :-: |
+| 1519 | [子树中标签相同的节点数](../../problems/number-of-nodes-in-the-sub-tree-with-the-same-label) | [[深度优先搜索](../depth-first-search/README.md)] [[广度优先搜索](../breadth-first-search/README.md)] | Medium |
| 1490 | [克隆 N 叉树](../../problems/clone-n-ary-tree) 🔒 | [[树](../tree/README.md)] [[深度优先搜索](../depth-first-search/README.md)] [[广度优先搜索](../breadth-first-search/README.md)] [[哈希表](../hash-table/README.md)] | Medium |
| 1489 | [找到最小生成树里的关键边和伪关键边](../../problems/find-critical-and-pseudo-critical-edges-in-minimum-spanning-tree) | [[深度优先搜索](../depth-first-search/README.md)] [[并查集](../union-find/README.md)] | Hard |
| 1485 | [克隆含随机指针的二叉树](../../problems/clone-binary-tree-with-random-pointer) 🔒 | [[树](../tree/README.md)] [[深度优先搜索](../depth-first-search/README.md)] | Medium |
diff --git a/tag/greedy/README.md b/tag/greedy/README.md
index 9027bc45e..1bd691a75 100644
--- a/tag/greedy/README.md
+++ b/tag/greedy/README.md
@@ -9,6 +9,8 @@
| # | 题目 | 标签 | 难度 |
| :-: | - | - | :-: |
+| 1520 | [最多的不重叠子字符串](../../problems/maximum-number-of-non-overlapping-substrings) | [[贪心算法](../greedy/README.md)] | Medium |
+| 1518 | [换酒问题](../../problems/water-bottles) | [[贪心算法](../greedy/README.md)] | Easy |
| 1505 | [最多 K 次交换相邻数位后得到的最小整数](../../problems/minimum-possible-integer-after-at-most-k-adjacent-swaps-on-digits) | [[贪心算法](../greedy/README.md)] | Hard |
| 1497 | [检查数组对是否可以被 k 整除](../../problems/check-if-array-pairs-are-divisible-by-k) | [[贪心算法](../greedy/README.md)] [[数组](../array/README.md)] [[数学](../math/README.md)] | Medium |
| 1433 | [检查一个字符串是否可以打破另一个字符串](../../problems/check-if-a-string-can-break-another-string) | [[贪心算法](../greedy/README.md)] [[字符串](../string/README.md)] | Medium |
diff --git a/tag/segment-tree/README.md b/tag/segment-tree/README.md
index d17f4d302..b4b1612de 100644
--- a/tag/segment-tree/README.md
+++ b/tag/segment-tree/README.md
@@ -9,6 +9,7 @@
| # | 题目 | 标签 | 难度 |
| :-: | - | - | :-: |
+| 1521 | [找到最接近目标值的函数值](../../problems/find-a-value-of-a-mysterious-function-closest-to-target) | [[位运算](../bit-manipulation/README.md)] [[线段树](../segment-tree/README.md)] [[二分查找](../binary-search/README.md)] | Hard |
| 1353 | [最多可以参加的会议数目](../../problems/maximum-number-of-events-that-can-be-attended) | [[贪心算法](../greedy/README.md)] [[排序](../sort/README.md)] [[线段树](../segment-tree/README.md)] | Medium |
| 1157 | [子数组中占绝大多数的元素](../../problems/online-majority-element-in-subarray) | [[线段树](../segment-tree/README.md)] [[数组](../array/README.md)] [[二分查找](../binary-search/README.md)] | Hard |
| 850 | [矩形面积 II](../../problems/rectangle-area-ii) | [[线段树](../segment-tree/README.md)] [[Line Sweep](../line-sweep/README.md)] | Hard |
diff --git a/tag/tree/README.md b/tag/tree/README.md
index f5c592079..f962bab77 100644
--- a/tag/tree/README.md
+++ b/tag/tree/README.md
@@ -9,6 +9,7 @@
| # | 题目 | 标签 | 难度 |
| :-: | - | - | :-: |
+| 1516 | [Move Sub-Tree of N-Ary Tree](../../problems/move-sub-tree-of-n-ary-tree) 🔒 | [[树](../tree/README.md)] | Hard |
| 1490 | [克隆 N 叉树](../../problems/clone-n-ary-tree) 🔒 | [[树](../tree/README.md)] [[深度优先搜索](../depth-first-search/README.md)] [[广度优先搜索](../breadth-first-search/README.md)] [[哈希表](../hash-table/README.md)] | Medium |
| 1485 | [克隆含随机指针的二叉树](../../problems/clone-binary-tree-with-random-pointer) 🔒 | [[树](../tree/README.md)] [[深度优先搜索](../depth-first-search/README.md)] | Medium |
| 1469 | [寻找所有的独生节点](../../problems/find-all-the-lonely-nodes) 🔒 | [[树](../tree/README.md)] [[深度优先搜索](../depth-first-search/README.md)] | Easy |