From b42d54444734654fa762de69619afab00089ac7a Mon Sep 17 00:00:00 2001 From: Yang Libin Date: Mon, 30 Oct 2023 00:49:32 +0000 Subject: [PATCH 1/2] feat: add biweekly contest 116 and weekly contest 369 --- .../README.md | 101 ++++++++++++++++ .../README_EN.md | 88 ++++++++++++++ .../README.md | 102 ++++++++++++++++ .../README_EN.md | 92 ++++++++++++++ .../README.md | 91 ++++++++++++++ .../README_EN.md | 81 +++++++++++++ .../README.md | 101 ++++++++++++++++ .../README_EN.md | 90 ++++++++++++++ .../2917.Find the K-or of an Array/README.md | 100 +++++++++++++++ .../README_EN.md | 91 ++++++++++++++ .../README.md | 85 +++++++++++++ .../README_EN.md | 75 ++++++++++++ .../README.md | 114 ++++++++++++++++++ .../README_EN.md | 104 ++++++++++++++++ .../README.md | 100 +++++++++++++++ .../README_EN.md | 90 ++++++++++++++ .../images/ex1-copy.png | Bin 0 -> 11850 bytes .../images/ex2.png | Bin 0 -> 9142 bytes solution/CONTEST_README.md | 14 +++ solution/CONTEST_README_EN.md | 14 +++ solution/README.md | 8 ++ solution/README_EN.md | 8 ++ solution/summary.md | 8 ++ solution/summary_en.md | 8 ++ 24 files changed, 1565 insertions(+) create mode 100644 solution/2900-2999/2913.Subarrays Distinct Element Sum of Squares I/README.md create mode 100644 solution/2900-2999/2913.Subarrays Distinct Element Sum of Squares I/README_EN.md create mode 100644 solution/2900-2999/2914.Minimum Number of Changes to Make Binary String Beautiful/README.md create mode 100644 solution/2900-2999/2914.Minimum Number of Changes to Make Binary String Beautiful/README_EN.md create mode 100644 solution/2900-2999/2915.Length of the Longest Subsequence That Sums to Target/README.md create mode 100644 solution/2900-2999/2915.Length of the Longest Subsequence That Sums to Target/README_EN.md create mode 100644 solution/2900-2999/2916.Subarrays Distinct Element Sum of Squares II/README.md create mode 100644 solution/2900-2999/2916.Subarrays Distinct Element Sum of Squares II/README_EN.md create mode 100644 solution/2900-2999/2917.Find the K-or of an Array/README.md create mode 100644 solution/2900-2999/2917.Find the K-or of an Array/README_EN.md create mode 100644 solution/2900-2999/2918.Minimum Equal Sum of Two Arrays After Replacing Zeros/README.md create mode 100644 solution/2900-2999/2918.Minimum Equal Sum of Two Arrays After Replacing Zeros/README_EN.md create mode 100644 solution/2900-2999/2919.Minimum Increment Operations to Make Array Beautiful/README.md create mode 100644 solution/2900-2999/2919.Minimum Increment Operations to Make Array Beautiful/README_EN.md create mode 100644 solution/2900-2999/2920.Maximum Points After Collecting Coins From All Nodes/README.md create mode 100644 solution/2900-2999/2920.Maximum Points After Collecting Coins From All Nodes/README_EN.md create mode 100644 solution/2900-2999/2920.Maximum Points After Collecting Coins From All Nodes/images/ex1-copy.png create mode 100644 solution/2900-2999/2920.Maximum Points After Collecting Coins From All Nodes/images/ex2.png diff --git a/solution/2900-2999/2913.Subarrays Distinct Element Sum of Squares I/README.md b/solution/2900-2999/2913.Subarrays Distinct Element Sum of Squares I/README.md new file mode 100644 index 0000000000000..74df06f8ac071 --- /dev/null +++ b/solution/2900-2999/2913.Subarrays Distinct Element Sum of Squares I/README.md @@ -0,0 +1,101 @@ +# [2913. 子数组不同元素数目的平方和 I](https://leetcode.cn/problems/subarrays-distinct-element-sum-of-squares-i) + +[English Version](/solution/2900-2999/2913.Subarrays%20Distinct%20Element%20Sum%20of%20Squares%20I/README_EN.md) + +## 题目描述 + + + +

给你一个下标从 0 开始的整数数组 nums 。

+ +

定义 nums 一个子数组的 不同计数 值如下:

+ + + +

请你返回 nums 中所有子数组的 不同计数 的 平方 和。

+ +

由于答案可能会很大,请你将它对 109 + 7 取余 后返回。

+ +

子数组指的是一个数组里面一段连续 非空 的元素序列。

+ +

 

+ +

示例 1:

+ +
+输入:nums = [1,2,1]
+输出:15
+解释:六个子数组分别为:
+[1]: 1 个互不相同的元素。
+[2]: 1 个互不相同的元素。
+[1]: 1 个互不相同的元素。
+[1,2]: 2 个互不相同的元素。
+[2,1]: 2 个互不相同的元素。
+[1,2,1]: 2 个互不相同的元素。
+所有不同计数的平方和为 12 + 12 + 12 + 22 + 22 + 22 = 15 。
+
+ +

示例 2:

+ +
+输入:nums = [2,2]
+输出:3
+解释:三个子数组分别为:
+[2]: 1 个互不相同的元素。
+[2]: 1 个互不相同的元素。
+[2,2]: 1 个互不相同的元素。
+所有不同计数的平方和为 12 + 12 + 12 = 3 。
+
+ +

 

+ +

提示:

+ + + +## 解法 + + + + + +### **Python3** + + + +```python + +``` + +### **Java** + + + +```java + +``` + +### **C++** + +```cpp + +``` + +### **Go** + +```go + +``` + +### **...** + +``` + +``` + + diff --git a/solution/2900-2999/2913.Subarrays Distinct Element Sum of Squares I/README_EN.md b/solution/2900-2999/2913.Subarrays Distinct Element Sum of Squares I/README_EN.md new file mode 100644 index 0000000000000..db319da3a4143 --- /dev/null +++ b/solution/2900-2999/2913.Subarrays Distinct Element Sum of Squares I/README_EN.md @@ -0,0 +1,88 @@ +# [2913. Subarrays Distinct Element Sum of Squares I](https://leetcode.com/problems/subarrays-distinct-element-sum-of-squares-i) + +[中文文档](/solution/2900-2999/2913.Subarrays%20Distinct%20Element%20Sum%20of%20Squares%20I/README.md) + +## Description + +

You are given a 0-indexed integer array nums.

+ +

The distinct count of a subarray of nums is defined as:

+ + + +

Return the sum of the squares of distinct counts of all subarrays of nums.

+ +

A subarray is a contiguous non-empty sequence of elements within an array.

+ +

 

+

Example 1:

+ +
+Input: nums = [1,2,1]
+Output: 15
+Explanation: Six possible subarrays are:
+[1]: 1 distinct value
+[2]: 1 distinct value
+[1]: 1 distinct value
+[1,2]: 2 distinct values
+[2,1]: 2 distinct values
+[1,2,1]: 2 distinct values
+The sum of the squares of the distinct counts in all subarrays is equal to 12 + 12 + 12 + 22 + 22 + 22 = 15.
+
+ +

Example 2:

+ +
+Input: nums = [1,1]
+Output: 3
+Explanation: Three possible subarrays are:
+[1]: 1 distinct value
+[1]: 1 distinct value
+[1,1]: 1 distinct value
+The sum of the squares of the distinct counts in all subarrays is equal to 12 + 12 + 12 = 3.
+ +

 

+

Constraints:

+ + + +## Solutions + + + +### **Python3** + +```python + +``` + +### **Java** + +```java + +``` + +### **C++** + +```cpp + +``` + +### **Go** + +```go + +``` + +### **...** + +``` + +``` + + diff --git a/solution/2900-2999/2914.Minimum Number of Changes to Make Binary String Beautiful/README.md b/solution/2900-2999/2914.Minimum Number of Changes to Make Binary String Beautiful/README.md new file mode 100644 index 0000000000000..3e456c39dcfca --- /dev/null +++ b/solution/2900-2999/2914.Minimum Number of Changes to Make Binary String Beautiful/README.md @@ -0,0 +1,102 @@ +# [2914. 使二进制字符串变美丽的最少修改次数](https://leetcode.cn/problems/minimum-number-of-changes-to-make-binary-string-beautiful) + +[English Version](/solution/2900-2999/2914.Minimum%20Number%20of%20Changes%20to%20Make%20Binary%20String%20Beautiful/README_EN.md) + +## 题目描述 + + + +

给你一个长度为偶数下标从 0 开始的二进制字符串 s 。

+ +

如果可以将一个字符串分割成一个或者更多满足以下条件的子字符串,那么我们称这个字符串是 美丽的 :

+ + + +

你可以将 s 中任一字符改成 0 或者 1 。

+ +

请你返回让字符串 s 美丽的 最少 字符修改次数。

+ +

 

+ +

示例 1:

+ +
+输入:s = "1001"
+输出:2
+解释:我们将 s[1] 改为 1 ,且将 s[3] 改为 0 ,得到字符串 "1100" 。
+字符串 "1100" 是美丽的,因为我们可以将它分割成 "11|00" 。
+将字符串变美丽最少需要 2 次修改。
+
+ +

示例 2:

+ +
+输入:s = "10"
+输出:1
+解释:我们将 s[1] 改为 1 ,得到字符串 "11" 。
+字符串 "11" 是美丽的,因为它已经是美丽的。
+将字符串变美丽最少需要 1 次修改。
+
+ +

示例 3:

+ +
+输入:s = "0000"
+输出:0
+解释:不需要进行任何修改,字符串 "0000" 已经是美丽字符串。
+
+ +

 

+ +

提示:

+ + + +## 解法 + + + + + +### **Python3** + + + +```python + +``` + +### **Java** + + + +```java + +``` + +### **C++** + +```cpp + +``` + +### **Go** + +```go + +``` + +### **...** + +``` + +``` + + diff --git a/solution/2900-2999/2914.Minimum Number of Changes to Make Binary String Beautiful/README_EN.md b/solution/2900-2999/2914.Minimum Number of Changes to Make Binary String Beautiful/README_EN.md new file mode 100644 index 0000000000000..85a086dc7af46 --- /dev/null +++ b/solution/2900-2999/2914.Minimum Number of Changes to Make Binary String Beautiful/README_EN.md @@ -0,0 +1,92 @@ +# [2914. Minimum Number of Changes to Make Binary String Beautiful](https://leetcode.com/problems/minimum-number-of-changes-to-make-binary-string-beautiful) + +[中文文档](/solution/2900-2999/2914.Minimum%20Number%20of%20Changes%20to%20Make%20Binary%20String%20Beautiful/README.md) + +## Description + +

You are given a 0-indexed binary string s having an even length.

+ +

A string is beautiful if it's possible to partition it into one or more substrings such that:

+ + + +

You can change any character in s to 0 or 1.

+ +

Return the minimum number of changes required to make the string s beautiful.

+ +

 

+

Example 1:

+ +
+Input: s = "1001"
+Output: 2
+Explanation: We change s[1] to 1 and s[3] to 0 to get string "1100".
+It can be seen that the string "1100" is beautiful because we can partition it into "11|00".
+It can be proven that 2 is the minimum number of changes needed to make the string beautiful.
+
+ +

Example 2:

+ +
+Input: s = "10"
+Output: 1
+Explanation: We change s[1] to 1 to get string "11".
+It can be seen that the string "11" is beautiful because we can partition it into "11".
+It can be proven that 1 is the minimum number of changes needed to make the string beautiful.
+
+ +

Example 3:

+ +
+Input: s = "0000"
+Output: 0
+Explanation: We don't need to make any changes as the string "0000" is beautiful already.
+
+ +

 

+

Constraints:

+ + + +## Solutions + + + +### **Python3** + +```python + +``` + +### **Java** + +```java + +``` + +### **C++** + +```cpp + +``` + +### **Go** + +```go + +``` + +### **...** + +``` + +``` + + diff --git a/solution/2900-2999/2915.Length of the Longest Subsequence That Sums to Target/README.md b/solution/2900-2999/2915.Length of the Longest Subsequence That Sums to Target/README.md new file mode 100644 index 0000000000000..72c90594de2f8 --- /dev/null +++ b/solution/2900-2999/2915.Length of the Longest Subsequence That Sums to Target/README.md @@ -0,0 +1,91 @@ +# [2915. 和为目标值的最长子序列的长度](https://leetcode.cn/problems/length-of-the-longest-subsequence-that-sums-to-target) + +[English Version](/solution/2900-2999/2915.Length%20of%20the%20Longest%20Subsequence%20That%20Sums%20to%20Target/README_EN.md) + +## 题目描述 + + + +

给你一个下标从 0 开始的整数数组 nums 和一个整数 target 。

+ +

返回和为 target 的 nums 子序列中,子序列 长度的最大值 。如果不存在和为 target 的子序列,返回 -1 。

+ +

子序列 指的是从原数组中删除一些或者不删除任何元素后,剩余元素保持原来的顺序构成的数组。

+ +

 

+ +

示例 1:

+ +
+输入:nums = [1,2,3,4,5], target = 9
+输出:3
+解释:总共有 3 个子序列的和为 9 :[4,5] ,[1,3,5] 和 [2,3,4] 。最长的子序列是 [1,3,5] 和 [2,3,4] 。所以答案为 3 。
+
+ +

示例 2:

+ +
+输入:nums = [4,1,3,2,1,5], target = 7
+输出:4
+解释:总共有 5 个子序列的和为 7 :[4,3] ,[4,1,2] ,[4,2,1] ,[1,1,5] 和 [1,3,2,1] 。最长子序列为 [1,3,2,1] 。所以答案为 4 。
+
+ +

示例 3:

+ +
+输入:nums = [1,1,5,4,5], target = 3
+输出:-1
+解释:无法得到和为 3 的子序列。
+
+ +

 

+ +

提示:

+ + + +## 解法 + + + + + +### **Python3** + + + +```python + +``` + +### **Java** + + + +```java + +``` + +### **C++** + +```cpp + +``` + +### **Go** + +```go + +``` + +### **...** + +``` + +``` + + diff --git a/solution/2900-2999/2915.Length of the Longest Subsequence That Sums to Target/README_EN.md b/solution/2900-2999/2915.Length of the Longest Subsequence That Sums to Target/README_EN.md new file mode 100644 index 0000000000000..5903ef24b1248 --- /dev/null +++ b/solution/2900-2999/2915.Length of the Longest Subsequence That Sums to Target/README_EN.md @@ -0,0 +1,81 @@ +# [2915. Length of the Longest Subsequence That Sums to Target](https://leetcode.com/problems/length-of-the-longest-subsequence-that-sums-to-target) + +[中文文档](/solution/2900-2999/2915.Length%20of%20the%20Longest%20Subsequence%20That%20Sums%20to%20Target/README.md) + +## Description + +

You are given a 0-indexed array of integers nums, and an integer target.

+ +

Return the length of the longest subsequence of nums that sums up to target. If no such subsequence exists, return -1.

+ +

A subsequence is an array that can be derived from another array by deleting some or no elements without changing the order of the remaining elements.

+ +

 

+

Example 1:

+ +
+Input: nums = [1,2,3,4,5], target = 9
+Output: 3
+Explanation: There are 3 subsequences with a sum equal to 9: [4,5], [1,3,5], and [2,3,4]. The longest subsequences are [1,3,5], and [2,3,4]. Hence, the answer is 3.
+
+ +

Example 2:

+ +
+Input: nums = [4,1,3,2,1,5], target = 7
+Output: 4
+Explanation: There are 5 subsequences with a sum equal to 7: [4,3], [4,1,2], [4,2,1], [1,1,5], and [1,3,2,1]. The longest subsequence is [1,3,2,1]. Hence, the answer is 4.
+
+ +

Example 3:

+ +
+Input: nums = [1,1,5,4,5], target = 3
+Output: -1
+Explanation: It can be shown that nums has no subsequence that sums up to 3.
+
+ +

 

+

Constraints:

+ + + +## Solutions + + + +### **Python3** + +```python + +``` + +### **Java** + +```java + +``` + +### **C++** + +```cpp + +``` + +### **Go** + +```go + +``` + +### **...** + +``` + +``` + + diff --git a/solution/2900-2999/2916.Subarrays Distinct Element Sum of Squares II/README.md b/solution/2900-2999/2916.Subarrays Distinct Element Sum of Squares II/README.md new file mode 100644 index 0000000000000..71ece64bd758c --- /dev/null +++ b/solution/2900-2999/2916.Subarrays Distinct Element Sum of Squares II/README.md @@ -0,0 +1,101 @@ +# [2916. 子数组不同元素数目的平方和 II](https://leetcode.cn/problems/subarrays-distinct-element-sum-of-squares-ii) + +[English Version](/solution/2900-2999/2916.Subarrays%20Distinct%20Element%20Sum%20of%20Squares%20II/README_EN.md) + +## 题目描述 + + + +

给你一个下标从 0 开始的整数数组 nums 。

+ +

定义 nums 一个子数组的 不同计数 值如下:

+ + + +

请你返回 nums 中所有子数组的 不同计数 的 平方 和。

+ +

由于答案可能会很大,请你将它对 109 + 7 取余 后返回。

+ +

子数组指的是一个数组里面一段连续 非空 的元素序列。

+ +

 

+ +

示例 1:

+ +
+输入:nums = [1,2,1]
+输出:15
+解释:六个子数组分别为:
+[1]: 1 个互不相同的元素。
+[2]: 1 个互不相同的元素。
+[1]: 1 个互不相同的元素。
+[1,2]: 2 个互不相同的元素。
+[2,1]: 2 个互不相同的元素。
+[1,2,1]: 2 个互不相同的元素。
+所有不同计数的平方和为 12 + 12 + 12 + 22 + 22 + 22 = 15 。
+
+ +

示例 2:

+ +
+输入:nums = [2,2]
+输出:3
+解释:三个子数组分别为:
+[2]: 1 个互不相同的元素。
+[2]: 1 个互不相同的元素。
+[2,2]: 1 个互不相同的元素。
+所有不同计数的平方和为 12 + 12 + 12 = 3 。
+
+ +

 

+ +

提示:

+ + + +## 解法 + + + + + +### **Python3** + + + +```python + +``` + +### **Java** + + + +```java + +``` + +### **C++** + +```cpp + +``` + +### **Go** + +```go + +``` + +### **...** + +``` + +``` + + diff --git a/solution/2900-2999/2916.Subarrays Distinct Element Sum of Squares II/README_EN.md b/solution/2900-2999/2916.Subarrays Distinct Element Sum of Squares II/README_EN.md new file mode 100644 index 0000000000000..45a8a9a509223 --- /dev/null +++ b/solution/2900-2999/2916.Subarrays Distinct Element Sum of Squares II/README_EN.md @@ -0,0 +1,90 @@ +# [2916. Subarrays Distinct Element Sum of Squares II](https://leetcode.com/problems/subarrays-distinct-element-sum-of-squares-ii) + +[中文文档](/solution/2900-2999/2916.Subarrays%20Distinct%20Element%20Sum%20of%20Squares%20II/README.md) + +## Description + +

You are given a 0-indexed integer array nums.

+ +

The distinct count of a subarray of nums is defined as:

+ + + +

Return the sum of the squares of distinct counts of all subarrays of nums.

+ +

Since the answer may be very large, return it modulo 109 + 7.

+ +

A subarray is a contiguous non-empty sequence of elements within an array.

+ +

 

+

Example 1:

+ +
+Input: nums = [1,2,1]
+Output: 15
+Explanation: Six possible subarrays are:
+[1]: 1 distinct value
+[2]: 1 distinct value
+[1]: 1 distinct value
+[1,2]: 2 distinct values
+[2,1]: 2 distinct values
+[1,2,1]: 2 distinct values
+The sum of the squares of the distinct counts in all subarrays is equal to 12 + 12 + 12 + 22 + 22 + 22 = 15.
+
+ +

Example 2:

+ +
+Input: nums = [2,2]
+Output: 3
+Explanation: Three possible subarrays are:
+[2]: 1 distinct value
+[2]: 1 distinct value
+[2,2]: 1 distinct value
+The sum of the squares of the distinct counts in all subarrays is equal to 12 + 12 + 12 = 3.
+ +

 

+

Constraints:

+ + + +## Solutions + + + +### **Python3** + +```python + +``` + +### **Java** + +```java + +``` + +### **C++** + +```cpp + +``` + +### **Go** + +```go + +``` + +### **...** + +``` + +``` + + diff --git a/solution/2900-2999/2917.Find the K-or of an Array/README.md b/solution/2900-2999/2917.Find the K-or of an Array/README.md new file mode 100644 index 0000000000000..10fe261d86620 --- /dev/null +++ b/solution/2900-2999/2917.Find the K-or of an Array/README.md @@ -0,0 +1,100 @@ +# [2917. 找出数组中的 K-or 值](https://leetcode.cn/problems/find-the-k-or-of-an-array) + +[English Version](/solution/2900-2999/2917.Find%20the%20K-or%20of%20an%20Array/README_EN.md) + +## 题目描述 + + + +

给你一个下标从 0 开始的整数数组 nums 和一个整数 k

+ +

nums 中的 K-or 是一个满足以下条件的非负整数:

+ + + +

返回 numsK-or 值。

+ +

注意 :对于整数 x ,如果 (2i AND x) == 2i ,则 x 中的第 i 位值为 1 ,其中 AND 为按位与运算符。

+ +

 

+ +

示例 1:

+ +
+输入:nums = [7,12,9,8,9,15], k = 4
+输出:9
+解释:nums[0]、nums[2]、nums[4] 和 nums[5] 的第 0 位的值为 1 。
+nums[0] 和 nums[5] 的第 1 位的值为 1 。
+nums[0]、nums[1] 和 nums[5] 的第 2 位的值为 1 。
+nums[1]、nums[2]、nums[3]、nums[4] 和 nums[5] 的第 3 位的值为 1 。
+只有第 0 位和第 3 位满足数组中至少存在 k 个元素在对应位上的值为 1 。因此,答案为 2^0 + 2^3 = 9 。
+
+ +

示例 2:

+ +
+输入:nums = [2,12,1,11,4,5], k = 6
+输出:0
+解释:因为 k == 6 == nums.length ,所以数组的 6-or 等于其中所有元素按位与运算的结果。因此,答案为 2 AND 12 AND 1 AND 11 AND 4 AND 5 = 0 。
+
+ +

示例 3:

+ +
+输入:nums = [10,8,5,9,11,6,8], k = 1
+输出:15
+解释:因为 k == 1 ,数组的 1-or 等于其中所有元素按位或运算的结果。因此,答案为 10 OR 8 OR 5 OR 9 OR 11 OR 6 OR 8 = 15 。
+ +

 

+ +

提示:

+ + + +## 解法 + + + + + +### **Python3** + + + +```python + +``` + +### **Java** + + + +```java + +``` + +### **C++** + +```cpp + +``` + +### **Go** + +```go + +``` + +### **...** + +``` + +``` + + diff --git a/solution/2900-2999/2917.Find the K-or of an Array/README_EN.md b/solution/2900-2999/2917.Find the K-or of an Array/README_EN.md new file mode 100644 index 0000000000000..ccfa7d9d79c24 --- /dev/null +++ b/solution/2900-2999/2917.Find the K-or of an Array/README_EN.md @@ -0,0 +1,91 @@ +# [2917. Find the K-or of an Array](https://leetcode.com/problems/find-the-k-or-of-an-array) + +[中文文档](/solution/2900-2999/2917.Find%20the%20K-or%20of%20an%20Array/README.md) + +## Description + +

You are given a 0-indexed integer array nums, and an integer k.

+ +

The K-or of nums is a non-negative integer that satisfies the following:

+ + + +

Return the K-or of nums.

+ +

Note that a bit i is set in x if (2i AND x) == 2i, where AND is the bitwise AND operator.

+ +

 

+

Example 1:

+ +
+Input: nums = [7,12,9,8,9,15], k = 4
+Output: 9
+Explanation: Bit 0 is set at nums[0], nums[2], nums[4], and nums[5].
+Bit 1 is set at nums[0], and nums[5].
+Bit 2 is set at nums[0], nums[1], and nums[5].
+Bit 3 is set at nums[1], nums[2], nums[3], nums[4], and nums[5].
+Only bits 0 and 3 are set in at least k elements of the array, and bits i >= 4 are not set in any of the array's elements. Hence, the answer is 2^0 + 2^3 = 9.
+
+ +

Example 2:

+ +
+Input: nums = [2,12,1,11,4,5], k = 6
+Output: 0
+Explanation: Since k == 6 == nums.length, the 6-or of the array is equal to the bitwise AND of all its elements. Hence, the answer is 2 AND 12 AND 1 AND 11 AND 4 AND 5 = 0.
+
+ +

Example 3:

+ +
+Input: nums = [10,8,5,9,11,6,8], k = 1
+Output: 15
+Explanation: Since k == 1, the 1-or of the array is equal to the bitwise OR of all its elements. Hence, the answer is 10 OR 8 OR 5 OR 9 OR 11 OR 6 OR 8 = 15.
+
+ +

 

+

Constraints:

+ + + +## Solutions + + + +### **Python3** + +```python + +``` + +### **Java** + +```java + +``` + +### **C++** + +```cpp + +``` + +### **Go** + +```go + +``` + +### **...** + +``` + +``` + + diff --git a/solution/2900-2999/2918.Minimum Equal Sum of Two Arrays After Replacing Zeros/README.md b/solution/2900-2999/2918.Minimum Equal Sum of Two Arrays After Replacing Zeros/README.md new file mode 100644 index 0000000000000..fb70b19b07ac6 --- /dev/null +++ b/solution/2900-2999/2918.Minimum Equal Sum of Two Arrays After Replacing Zeros/README.md @@ -0,0 +1,85 @@ +# [2918. 数组的最小相等和](https://leetcode.cn/problems/minimum-equal-sum-of-two-arrays-after-replacing-zeros) + +[English Version](/solution/2900-2999/2918.Minimum%20Equal%20Sum%20of%20Two%20Arrays%20After%20Replacing%20Zeros/README_EN.md) + +## 题目描述 + + + +

给你两个由正整数和 0 组成的数组 nums1nums2

+ +

你必须将两个数组中的 所有 0 替换为 严格 正整数,并且满足两个数组中所有元素的和 相等

+ +

返回 最小 相等和 ,如果无法使两数组相等,则返回 -1

+ +

 

+ +

示例 1:

+ +
+输入:nums1 = [3,2,0,1,0], nums2 = [6,5,0]
+输出:12
+解释:可以按下述方式替换数组中的 0 :
+- 用 2 和 4 替换 nums1 中的两个 0 。得到 nums1 = [3,2,2,1,4] 。
+- 用 1 替换 nums2 中的一个 0 。得到 nums2 = [6,5,1] 。
+两个数组的元素和相等,都等于 12 。可以证明这是可以获得的最小相等和。
+
+ +

示例 2:

+ +
+输入:nums1 = [2,0,2,0], nums2 = [1,4]
+输出:-1
+解释:无法使两个数组的和相等。
+
+ +

 

+ +

提示:

+ + + +## 解法 + + + + + +### **Python3** + + + +```python + +``` + +### **Java** + + + +```java + +``` + +### **C++** + +```cpp + +``` + +### **Go** + +```go + +``` + +### **...** + +``` + +``` + + diff --git a/solution/2900-2999/2918.Minimum Equal Sum of Two Arrays After Replacing Zeros/README_EN.md b/solution/2900-2999/2918.Minimum Equal Sum of Two Arrays After Replacing Zeros/README_EN.md new file mode 100644 index 0000000000000..9d05efb1148f2 --- /dev/null +++ b/solution/2900-2999/2918.Minimum Equal Sum of Two Arrays After Replacing Zeros/README_EN.md @@ -0,0 +1,75 @@ +# [2918. Minimum Equal Sum of Two Arrays After Replacing Zeros](https://leetcode.com/problems/minimum-equal-sum-of-two-arrays-after-replacing-zeros) + +[中文文档](/solution/2900-2999/2918.Minimum%20Equal%20Sum%20of%20Two%20Arrays%20After%20Replacing%20Zeros/README.md) + +## Description + +

You are given two arrays nums1 and nums2 consisting of positive integers.

+ +

You have to replace all the 0's in both arrays with strictly positive integers such that the sum of elements of both arrays becomes equal.

+ +

Return the minimum equal sum you can obtain, or -1 if it is impossible.

+ +

 

+

Example 1:

+ +
+Input: nums1 = [3,2,0,1,0], nums2 = [6,5,0]
+Output: 12
+Explanation: We can replace 0's in the following way:
+- Replace the two 0's in nums1 with the values 2 and 4. The resulting array is nums1 = [3,2,2,1,4].
+- Replace the 0 in nums2 with the value 1. The resulting array is nums2 = [6,5,1].
+Both arrays have an equal sum of 12. It can be shown that it is the minimum sum we can obtain.
+
+ +

Example 2:

+ +
+Input: nums1 = [2,0,2,0], nums2 = [1,4]
+Output: -1
+Explanation: It is impossible to make the sum of both arrays equal.
+
+ +

 

+

Constraints:

+ + + +## Solutions + + + +### **Python3** + +```python + +``` + +### **Java** + +```java + +``` + +### **C++** + +```cpp + +``` + +### **Go** + +```go + +``` + +### **...** + +``` + +``` + + diff --git a/solution/2900-2999/2919.Minimum Increment Operations to Make Array Beautiful/README.md b/solution/2900-2999/2919.Minimum Increment Operations to Make Array Beautiful/README.md new file mode 100644 index 0000000000000..ec401b101772e --- /dev/null +++ b/solution/2900-2999/2919.Minimum Increment Operations to Make Array Beautiful/README.md @@ -0,0 +1,114 @@ +# [2919. 使数组变美的最小增量运算数](https://leetcode.cn/problems/minimum-increment-operations-to-make-array-beautiful) + +[English Version](/solution/2900-2999/2919.Minimum%20Increment%20Operations%20to%20Make%20Array%20Beautiful/README_EN.md) + +## 题目描述 + + + +

给你一个下标从 0 开始、长度为 n 的整数数组 nums ,和一个整数 k

+ +

你可以执行下述 递增 运算 任意 次(可以是 0 次):

+ + + +

如果数组中任何长度 大于或等于 3 的子数组,其 最大 元素都大于或等于 k ,则认为数组是一个 美丽数组

+ +

以整数形式返回使数组变为 美丽数组 需要执行的 最小 递增运算数。

+ +

子数组是数组中的一个连续 非空 元素序列。

+ +

 

+ +

示例 1:

+ +
+输入:nums = [2,3,0,0,2], k = 4
+输出:3
+解释:可以执行下述递增运算,使 nums 变为美丽数组:
+选择下标 i = 1 ,并且将 nums[1] 的值加 1 -> [2,4,0,0,2] 。
+选择下标 i = 4 ,并且将 nums[4] 的值加 1 -> [2,4,0,0,3] 。
+选择下标 i = 4 ,并且将 nums[4] 的值加 1 -> [2,4,0,0,4] 。
+长度大于或等于 3 的子数组为 [2,4,0], [4,0,0], [0,0,4], [2,4,0,0], [4,0,0,4], [2,4,0,0,4] 。
+在所有子数组中,最大元素都等于 k = 4 ,所以 nums 现在是美丽数组。
+可以证明无法用少于 3 次递增运算使 nums 变为美丽数组。
+因此,答案为 3 。
+
+ +

示例 2:

+ +
+输入:nums = [0,1,3,3], k = 5
+输出:2
+解释:可以执行下述递增运算,使 nums 变为美丽数组:
+选择下标 i = 2 ,并且将 nums[2] 的值加 1 -> [0,1,4,3] 。
+选择下标 i = 2 ,并且将 nums[2] 的值加 1 -> [0,1,5,3] 。
+长度大于或等于 3 的子数组为 [0,1,5]、[1,5,3]、[0,1,5,3] 。
+在所有子数组中,最大元素都等于 k = 5 ,所以 nums 现在是美丽数组。
+可以证明无法用少于 2 次递增运算使 nums 变为美丽数组。 
+因此,答案为 2 。
+
+ +

示例 3:

+ +
+输入:nums = [1,1,2], k = 1
+输出:0
+解释:在这个示例中,只有一个长度大于或等于 3 的子数组 [1,1,2] 。
+其最大元素 2 已经大于 k = 1 ,所以无需执行任何增量运算。
+因此,答案为 0 。
+
+ +

 

+ +

提示:

+ + + +## 解法 + + + + + +### **Python3** + + + +```python + +``` + +### **Java** + + + +```java + +``` + +### **C++** + +```cpp + +``` + +### **Go** + +```go + +``` + +### **...** + +``` + +``` + + diff --git a/solution/2900-2999/2919.Minimum Increment Operations to Make Array Beautiful/README_EN.md b/solution/2900-2999/2919.Minimum Increment Operations to Make Array Beautiful/README_EN.md new file mode 100644 index 0000000000000..d3820c07ecaaa --- /dev/null +++ b/solution/2900-2999/2919.Minimum Increment Operations to Make Array Beautiful/README_EN.md @@ -0,0 +1,104 @@ +# [2919. Minimum Increment Operations to Make Array Beautiful](https://leetcode.com/problems/minimum-increment-operations-to-make-array-beautiful) + +[中文文档](/solution/2900-2999/2919.Minimum%20Increment%20Operations%20to%20Make%20Array%20Beautiful/README.md) + +## Description + +

You are given a 0-indexed integer array nums having length n, and an integer k.

+ +

You can perform the following increment operation any number of times (including zero):

+ + + +

An array is considered beautiful if, for any subarray with a size of 3 or more, its maximum element is greater than or equal to k.

+ +

Return an integer denoting the minimum number of increment operations needed to make nums beautiful.

+ +

A subarray is a contiguous non-empty sequence of elements within an array.

+ +

 

+

Example 1:

+ +
+Input: nums = [2,3,0,0,2], k = 4
+Output: 3
+Explanation: We can perform the following increment operations to make nums beautiful:
+Choose index i = 1 and increase nums[1] by 1 -> [2,4,0,0,2].
+Choose index i = 4 and increase nums[4] by 1 -> [2,4,0,0,3].
+Choose index i = 4 and increase nums[4] by 1 -> [2,4,0,0,4].
+The subarrays with a size of 3 or more are: [2,4,0], [4,0,0], [0,0,4], [2,4,0,0], [4,0,0,4], [2,4,0,0,4].
+In all the subarrays, the maximum element is equal to k = 4, so nums is now beautiful.
+It can be shown that nums cannot be made beautiful with fewer than 3 increment operations.
+Hence, the answer is 3.
+
+ +

Example 2:

+ +
+Input: nums = [0,1,3,3], k = 5
+Output: 2
+Explanation: We can perform the following increment operations to make nums beautiful:
+Choose index i = 2 and increase nums[2] by 1 -> [0,1,4,3].
+Choose index i = 2 and increase nums[2] by 1 -> [0,1,5,3].
+The subarrays with a size of 3 or more are: [0,1,5], [1,5,3], [0,1,5,3].
+In all the subarrays, the maximum element is equal to k = 5, so nums is now beautiful.
+It can be shown that nums cannot be made beautiful with fewer than 2 increment operations.
+Hence, the answer is 2.
+
+ +

Example 3:

+ +
+Input: nums = [1,1,2], k = 1
+Output: 0
+Explanation: The only subarray with a size of 3 or more in this example is [1,1,2].
+The maximum element, 2, is already greater than k = 1, so we don't need any increment operation.
+Hence, the answer is 0.
+
+ +

 

+

Constraints:

+ + + +## Solutions + + + +### **Python3** + +```python + +``` + +### **Java** + +```java + +``` + +### **C++** + +```cpp + +``` + +### **Go** + +```go + +``` + +### **...** + +``` + +``` + + diff --git a/solution/2900-2999/2920.Maximum Points After Collecting Coins From All Nodes/README.md b/solution/2900-2999/2920.Maximum Points After Collecting Coins From All Nodes/README.md new file mode 100644 index 0000000000000..5a8d0001de7c9 --- /dev/null +++ b/solution/2900-2999/2920.Maximum Points After Collecting Coins From All Nodes/README.md @@ -0,0 +1,100 @@ +# [2920. 收集所有金币可获得的最大积分](https://leetcode.cn/problems/maximum-points-after-collecting-coins-from-all-nodes) + +[English Version](/solution/2900-2999/2920.Maximum%20Points%20After%20Collecting%20Coins%20From%20All%20Nodes/README_EN.md) + +## 题目描述 + + + +

节点 0 处现有一棵由 n 个节点组成的无向树,节点编号从 0n - 1 。给你一个长度为 n - 1 的二维 整数 数组 edges ,其中 edges[i] = [ai, bi] 表示在树上的节点 aibi 之间存在一条边。另给你一个下标从 0 开始、长度为 n 的数组 coins 和一个整数 k ,其中 coins[i] 表示节点 i 处的金币数量。

+ +

从根节点开始,你必须收集所有金币。要想收集节点上的金币,必须先收集该节点的祖先节点上的金币。

+ +

节点 i 上的金币可以用下述方法之一进行收集:

+ + + +

返回收集 所有 树节点的金币之后可以获得的最大积分。

+ +

 

+ +

示例 1:

+ +
+输入:edges = [[0,1],[1,2],[2,3]], coins = [10,10,3,3], k = 5
+输出:11                        
+解释:
+使用第一种方法收集节点 0 上的所有金币。总积分 = 10 - 5 = 5 。
+使用第一种方法收集节点 1 上的所有金币。总积分 = 5 + (10 - 5) = 10 。
+使用第二种方法收集节点 2 上的所有金币。所以节点 3 上的金币将会变为 floor(3 / 2) = 1 ,总积分 = 10 + floor(3 / 2) = 11 。
+使用第二种方法收集节点 3 上的所有金币。总积分 =  11 + floor(1 / 2) = 11.
+可以证明收集所有节点上的金币能获得的最大积分是 11 。 
+
+ +

示例 2:

+ + +
+输入:edges = [[0,1],[0,2]], coins = [8,4,4], k = 0
+输出:16
+解释:
+使用第一种方法收集所有节点上的金币,因此,总积分 = (8 - 0) + (4 - 0) + (4 - 0) = 16 。
+
+ +

 

+ +

提示:

+ + + +## 解法 + + + + + +### **Python3** + + + +```python + +``` + +### **Java** + + + +```java + +``` + +### **C++** + +```cpp + +``` + +### **Go** + +```go + +``` + +### **...** + +``` + +``` + + diff --git a/solution/2900-2999/2920.Maximum Points After Collecting Coins From All Nodes/README_EN.md b/solution/2900-2999/2920.Maximum Points After Collecting Coins From All Nodes/README_EN.md new file mode 100644 index 0000000000000..37ed176f0f042 --- /dev/null +++ b/solution/2900-2999/2920.Maximum Points After Collecting Coins From All Nodes/README_EN.md @@ -0,0 +1,90 @@ +# [2920. Maximum Points After Collecting Coins From All Nodes](https://leetcode.com/problems/maximum-points-after-collecting-coins-from-all-nodes) + +[中文文档](/solution/2900-2999/2920.Maximum%20Points%20After%20Collecting%20Coins%20From%20All%20Nodes/README.md) + +## Description + +

There exists an undirected tree rooted at node 0 with n nodes labeled from 0 to n - 1. You are given a 2D integer array edges of length n - 1, where edges[i] = [ai, bi] indicates that there is an edge between nodes ai and bi in the tree. You are also given a 0-indexed array coins of size n where coins[i] indicates the number of coins in the vertex i, and an integer k.

+ +

Starting from the root, you have to collect all the coins such that the coins at a node can only be collected if the coins of its ancestors have been already collected.

+ +

Coins at nodei can be collected in one of the following ways:

+ + + +

Return the maximum points you can get after collecting the coins from all the tree nodes.

+ +

 

+

Example 1:

+ +
+Input: edges = [[0,1],[1,2],[2,3]], coins = [10,10,3,3], k = 5
+Output: 11                        
+Explanation: 
+Collect all the coins from node 0 using the first way. Total points = 10 - 5 = 5.
+Collect all the coins from node 1 using the first way. Total points = 5 + (10 - 5) = 10.
+Collect all the coins from node 2 using the second way so coins left at node 3 will be floor(3 / 2) = 1. Total points = 10 + floor(3 / 2) = 11.
+Collect all the coins from node 3 using the second way. Total points = 11 + floor(1 / 2) = 11.
+It can be shown that the maximum points we can get after collecting coins from all the nodes is 11. 
+
+ +

Example 2:

+ + +
+Input: edges = [[0,1],[0,2]], coins = [8,4,4], k = 0
+Output: 16
+Explanation: 
+Coins will be collected from all the nodes using the first way. Therefore, total points = (8 - 0) + (4 - 0) + (4 - 0) = 16.
+
+ +

 

+

Constraints:

+ + + +## Solutions + + + +### **Python3** + +```python + +``` + +### **Java** + +```java + +``` + +### **C++** + +```cpp + +``` + +### **Go** + +```go + +``` + +### **...** + +``` + +``` + + diff --git a/solution/2900-2999/2920.Maximum Points After Collecting Coins From All Nodes/images/ex1-copy.png b/solution/2900-2999/2920.Maximum Points After Collecting Coins From All Nodes/images/ex1-copy.png new file mode 100644 index 0000000000000000000000000000000000000000..175d8b6a6154ea8b4836b2827f74480c3b88d8f1 GIT binary patch literal 11850 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 F{{vxR6T<)i literal 0 HcmV?d00001 diff --git a/solution/2900-2999/2920.Maximum Points After Collecting Coins From All Nodes/images/ex2.png b/solution/2900-2999/2920.Maximum Points After Collecting Coins From All Nodes/images/ex2.png new file mode 100644 index 0000000000000000000000000000000000000000..8df50f399a0e9f82acb3daf12679f1bf455898cd GIT binary patch literal 9142 zcmYjX2RvKt+fG|bb!gFQ%`USQBO>;Q5j$qgQd=Y>B8gdwqLk_|TC=ECwKr9(YSpe$ zdo)(9QbeVEr~mi;f8Y0$oadb9Jm=1{?)$#3>xeYaN1SKkU;=?a=e0D|jDWHc_;xa$ z29AX13*$g>!pjH&2Nm^lt$;vuzliGQM0X!&G}Z~k2T}d!j88($73W3dgQ)RINZ8@= zU`Mo_3&GCa3+&-U1ge1h?l?!ZGup}VpEeR=5)ctF84+=56LBd%hze8^IEcxBq0%tR zf7;u*IC=bQP!H#a#$xUGBs8F4F~F3do}B~QgNXBT<%7V1Yb_6=6Ba0eYT$@81`g)H zS6s|i9BK;_0!~%%c&w9|lf4ca=#2&x0s}*&fNDVJ^s#s2;QmBx0?b_DeQGx2w1PDDGGe@2DCd%2Ot2{PVh_T~g9LrX`f zx5q!DAv+Pg&^V8O2QLnWfuaB0Ao}8+{;73zBBLFEAC%yOr~?!G?+gO=J?wyf{AXqj zfJqS%|K~yUzcXp;pac_yy1fe0(*%#u z6h~uBy-g8hR|&L?G#u@N^z(8zAh;WgiTfH6EVNBb&_;$1XdOu}FF4ZC*v;M^t3uR~ za+Iks#W;dIr2ovL9ekL~V>2Pzih_P0_j}s2$4Q%N!#Pm9j_MksVF#TnQ$cs;Zj0W`8%f zhMpvv^tY7oQ**_-8e4jMm_iU(Npqqk*3-gGg{+RYboFpVdV8Qf3{50munu@48j4gk zgn4LTr7i4G>S`!cxQ~jluZI&%(#=@L2q&!yk<>EPu(QXhkaVG*7!#PD4BS)0NWw?o z(n!ov&B8+5*-i%m^iSJN#mEPz?hIAI=y^cln(AajS2Y6zb-10n{@-!=NaFSUq@1)I zd=NS$T?3$(Cfb@VuBy6fuI}bWj^+@U1=Pex%>b{j?&0ffWR8Mh-7FCjDkviZM`yUc zjDs88!v(71W?-zMNAh)t0VcgnGz@(`E$}j$_TpleL{Bu*6D_5tCGCRHwNP_au}7&J ztJsk(BoTTfbswNTN=jW?SHn%)$kfMIOPU090jBAtiSm$9hiTcFsKa%%O~_(I2vNrl z22s_LaMtvZMmdnRH2%&g)(m0jDsF;;m^<5f>!JMsa~Kn(se!YniIg5%U&Wb-^u$2T z%~kE)O^|pu4QClCqMDz(xrL{Rv?D^_UR;-`>Wz`~@+PP`Ny71BWCY$`500~Q1dO{u z)GUaufJFy8f|v{e=}6F&R0Et2xb*Z&4Mh&mB(Vg~~8;I-6LOnhwCQ_q?h zo7J^9GM>3PwtW$cZ>qPvi)H#fUIZRE}eY$s|zQ)A0lj9{wA27wy%9A3dulYqMSI(CTnV_acuFY7;iv zy+0mruI;35t}!rl^r3iWLCUv5kG2nJuemM=sAUa2mgI=Z)yR7NcG%6=uOY2<4*$y< zY}UH)b7RZr1DGc^_v+QF)Y8Jj^%)TU49E?njJtE|+a#FfG41_QFdm27Z0qgq-I0@( z&0(OUn~aK%{;sB`R)b8H9oD*gS~v z5;OX1cz76w!C*3KYkjxlgp7|MVqyjZ)6+JmLG15c!1Y!)w_$73wW#sGQ~ zILTd7bK+zpWgc-htc6%2t~cbWebd6b`@?;#{4B)^kfq8~$}1-R?$>w5!Z)By$| z42rYLbs|^5XLF0Z@-%PDE`R_2%Lj!TQSD9;Nmg!n=dN>woxQcned4QZ>IOrt^+&>% z`nRf7i8rK^O7xdPLqqqw9m~E)M@LT=T2<@k7_{9`?>D}#pfII=n}yp0i?v?3c+2&x zP;d~owB;b+sNK%aj)$I}UQy60^pM%kPHNLIbS*J*~ZM&eL;W2A+qsm}H#LGRSOefw$D$YtI}^u~>hKa;gyMz3}E?rv0#wKtzm$534(Lsb3px78VQRRM9Hn6FTjXJlxy}j)Rfk2#u`s!?X zEoH#^dZb$Buv?|zX?Qok#f}3v?dJ34%FA z{ra1{{QS<=>4$UEw)gM9sRMlITJn`oB}{?A%6MPEJz^IsF489^XXfQ;Rs(CoYh`7X zyI}vaaQ!|jZ9qjuh41|N^J!IN;d>Lz7cOkLVX?aRyOZvZG>Nh?_2uT~B4i0YA{#Jz zOV*V5cvF$Y?)3I46lSdb3RQJ-a&onIq|C0ZC9C<())_#2;VhbvDmvJ^n^zP6bi-l z@THD+HcJClVy~S@l>xT3Wu@i%r<{Y|3)z=@_V>58fKVk1ep!uhk);_nH#esP3nh`- z{6!9a^LZX82S>kAyBnlnFh_c5F6fS;V&MKj7DDR-j{n8apFdX@+GBC2A2NS=ubn&} z9iHB|#EzY;`57Z(RV6)_sfojhrpS3;_(+{UJNwgT>kFi>>51q^Mlcv$^UAg4mViKR zP+yt?Z&hU_pM%q@%Q1G6w7|eXmkV6dVlD%j>L}uCir!SMS9=L@YjwC_A1Z;HmKVHp z2a+-p(!Kd9lC{LXEvk58e0*`<{$=I*eaXMmJUEn#WLPNEfbsFsU*J_dheo5rm6kO# zzkW3tYYbAtj+LC)Tl?nV{y@Zox$x(M14<&NtehO*62f#>TYo?y4!03x%Ef z;LGY{pnRLppnLIRV@4!ks*V(%+uZq5 zz;3Q3Y-D6?eova~6c1yde2VMO_-O0rom;2$ZynDZA9;^epkK~qUul@U@P|)8KvhNM zM8NK_+1A9&(MT7I)d<(M1Cbq0sY-m*!IP+{+1*iFUhzfS4?f~=zRqXsB+jnnrhje; z5?tKh-d-JYtGvC~4!;D6X%d?7I->c$f?}>{^TJJs8yvg_7=LVTGP}FGKa^0a`Tkq0 zs$F*sf9I)jT9DxPnV@3@`Q5L^r@b?-#qBKhG5or*@e--n{5edpkC&TUq``CHbJo~Z zCnwdb+&hN{2M-?1HU)pH37G5Y?uI;40Jd-mfuh~-R=JhfNNanxfZ$wI+#7R1C5&z_ z8eFY%8-7;|#D-3Go9?OQnxu~(KSsdZ$A671_9U0qc0wd1W~aPo8h)_Z+S*c=vts)P zRoZ3T9;JD2Oy*AjNt^*#{yQZSU!p$WKNWVl80~6|6S-GM94&QdFG(7Vw)ba4`S|)a z109YmGm@$c=uVD_jop+Dq*1R(6bun~W$XA~_u(>5Ix04XJ#Ee7u;_FOzUs)ANUz^o z%9P&M=<~hfxma0vVx6qusolk7oQ+YwiQ{=uQuUnKV0*iOKj0Sy+dDg@QHMWwzA8LH zy*KyV8A2*4yfG0z4k=Gvs65{YEBt9Q5W3q+f3n$3L_~zyq7m&}rMb6m_pHdVU24@n zlY0W-J8`M0sYhQi1Le0lH3Ba(h50);I2>!jd550mynRbdl_jn6YG-dBee=#K7%ZZ@ zGs^%f(}AcB&ziFwt5qhsb$45(4Mb!%aUDJ*2IuTKo#(Rr7j zj!&RmESj2;xUjV3?YqA*h2-bwm!JxZ)K_F?W(M~p!;Y1Ezn6UpBIc>Gtj0KnCiH&>D5>tW-lFs*kA)v54g4pzwMwj&FI$oBTfQp*%jsGtwHH!p+9^t1bE(1m4}%bv5YJU7HUz z>+@|-5|fgW`k$-5Ke|L^pagw?j`-+%bg;xLA|zzDcK+G3XZ?X2lQQ|b{Qe2UUzu&> zgM%39?MtZ>d3l0oSkpnSpNjMI(bs2ZSW}vmu#D%fWbvix+!Unhu!O%c09pBakFOE zFMcRA5#HaJX>9b~T^+8N$iMoa$+FrbwZK4dvT2dHXuc^$cT_q<`!8x^W@lrg&f}{R z^Vv-$&0G$)DeEK>$t_-cm%~cw{_Abl-$4K(6wRnrCe+HyKp^F!Q0V1}Z*Mv~I~xF; zD*s%Q_%OzcB&g|Yd+DSSDb^JETB2>Zr$_Hqd_2_mTba{SrDaS%x#A+9h{!s7s{Vec zHMo%uBn+b7+0}7y(K@LFooYP!5E81~_WR&~Qd3v=J1h6$tx>uxXtf-9t!8*=XlQVJ zJSnQ`koN-@F??jESb}YO>JpuDVm?3kL2OuVZY3z&JUWDTcwQdJ@0YlC1!43J>u`Z#;HM+<>J_F-!^^> zAXE~7Rk2jD0GoKw4!Rhd&z{9rd1QYop{D<;ydI zb{$^f&iQLnAyF?GX%4NiEew+L$GmMPgvgOZ71o}KTGLBBLLi`8Ch9%qdh#*@;k^9+RJvz?uB9p{xb0;86vZLzK?IIUBz_ao^Z8ra&-%z&C4{`~oKGe%<}f54R= zU1^zSQ@n(i=4vP}FaHd5`RS7c!m$nJ?v$3NJu7d~*;%g!{XzCJwB*Su)i=wH>^7cLzn>1NJ* zTz)N3DirtOhB^0f`Q<>V&j+`U1bhQS8OAu4V#%jUB#vAbI{H=-e*}M(1LvHy+r7LB z=$1N_V7;xE(lf-WXQp%4lV@GxOLAm*E9o%vK~+u2rrbbS3ICDHDWG-k1;v8xW8H}K zPX~*kxcAM}T)v?>#L3J*m^`p@HP>b55l14e&yjjfiSTVM&;d9%p=zbz8stJt4}$nx zkn;gQg8P=K>5*FyS^Y}I(Ksu|6x-LQl_Gb9%CTgX&uz!LA%Jb?9W0q%1GorIkL1*Q zt(TK3EVj7P#YVlx9y@-P;Cpi}x|8TT!s}nbg`_ukXcau3Yjimcbs6rLd8vJHT6f*xA{u>Cav{ch|b6-vMyV z*^LcFeLWDs0pk7xOZsDo-=Y#&2c9Y3f2z&dRQhw~0FQ0## zo&6_sXeIDjH{}k4ZCq(-Uvqeg5v-t@7s!#e;6wozN5^0804Agbe~57%1At2*z-Ewa zPud~?xIZ$M$2l(9?L77VM38iP-?8-FyI->2ylG-^!r+fP9VN^^2Kf5lyO(O2ZPf62 zaP8s`5+^&&zSJjFmw%!hH}i1Y zxSP_p#lXP8zDlf9&(6-~dH#G^?y^D|*5i&_u>q{t zt{u2qSiFv1pi~smdwP1V12g-VTfZk+kpnPl)eKOvvw@}NwDtEE<+u6x_@YnEEGIpB z^r*^fsTV4?a{78*j6BsKTuDr9YiDa~ON{?1we?JWl#i2p=#3g|sP1)$5*Ns=pr9bQcSZMI6SHW<;2T3j!{zi_u6sA4mo-$X#pjj) z@UpV9GXIw-SFl~L8&&0PDJw6h08IQ5coa@N^(J#7Z!1fN_r{GIItB0E1+3hxD_n~P z$oTQWQhMxw9r)tFIuCsgk@NhK0XWf0Bwo9g_^QC+&T`CpX00+yq*}qSo8dWP=g6O! ztOuDB7nfcSx~owK7@nIJpcKLu=VMhFHB8mZRd%+w!QGVYC47Te=0s>$boPYiR{Lo> zIyPVxeP@NsveuZ+oil;KV4|%=m2(5`Y+@Qi>nEsxXf*I9pv#PxId!LS(O)b2lSwab zRfRoJ$v4q&@6pJdSdNO$nZQ%CLPJ8d0r^GVla-y_KO{7?o`aK_x18fC>KZdX0Lv$JyyK%jZpts*^g;;(8|XKY2()YcA@yuIs_Jff!f zCa0$SJ!U>~hj&&9s==b9FO05(Y48j@4vSs;ad2>8!!}{>UK$q{R}>W$71Tx9uI65+ z%j6`{hyNh62Lj5Mx|36Oqr%>Bh6gx}Z{VY{xVU&%Z?Aq3!b+2vRn&x^ir$JiOBYgX zX=%xmIn7qD!xYw%3}EnM%B+l%8Vn-N^)C5DATMwFT1`#OFatABz}S~6bE|;1sLL=N z9i9D|8qZrjhWgj*UT+>`)LolpXQU$mqE|*~Y3XA1=RppD&~N=q3YObOZzyFZA9(P- z;|xh(`2PK^X~D2QHmMl*ablx5c=6ER$7h)+%RL@ts5HHIHxEfHZ$hh*RJRcH3=Bcw zcfaaB34f5}SQ~ zbF$XB8onWqBEd!{Pkv z(Vvc@>pX!iC0A_Iuo~GNCGx#wE{m>cD=Qw3l>ez_=IvcQmHTM+tyNHv628{@``H=- zrRzacSa^8L{!9=v5CFmxZCV@zG_yRocw$HW7e1e7=Nd`@FmL$tQ)X1d@h=k-^~kJ& zu?N9Q`gQjj1G!mPSo)1G4h{`%wiJ*47}yiV16l=jyIXWFjNPWm{yS{-^Bi9Klx5)+ zN_43hHt$kRYw^%Z|Kr@zAG@q;>+&fi$nTSFBTv{x!vQrw)yoUw<2PTb`zeo8n{@N% zS|NA#5k7+V9$kb3RrBd=buO!6?x~v9k%@`306}^dAMey(`}Qr}(N=_#!QiA#*fS5u z@4OM!ogK$-cKUTTlc1P485t+kZe9wY&P9aZy{O+H=9l183?;OdCx;zM)a)%RuwA&$l1geg^y@M%8}-TWMBgZYSO&xzy@5D?DWUom zS`6fIx^%?}MM&YMX(I_DRwdn}%tV0d-X5#>7X9$2sx`4&arXFLJ$c1@bNY`8pe2++ z+cE~P00xWemifHj^Xl`~M%P_)A#KQ$*RJwtnG1J081XAA+B~39fA(BR8P+0}Kcvs{ z03-nVUI^;O&O!T}JOhebHa-14W0^8z*^BOzxpoFlRBiC=&H)MWl&<&S4+zn5eFgVK|FpuUhR-C5`u|rd~KEI-gAmSBW?DMr%}^32WH_6!~L40zrZ-Cv$&RF7ymwX8g;SFK#J& zO9FMTa~y6@0g6G+AF}Nkg2a>87h2!ebiTBBmKy3Jr|=Q`O`=}3r}YyuD=9c<)nmM3 zMH_>;Q{+OpG^JsHlbq^6M>|h?ewWmMq=Xq7cIArSOjf@+0K<&D_mu^xWTTVx1%ewO zeC{9pIXn*Ck@*1R{<*6u;k9KTGMPvC1#iY$_dEiL3c^&jqBI1dyiM3i&3Vg z2V*)i)`yWm1}z5U?2)lC>Akn4bKr-|WF(z&T?~_wTS(v1C~l%kuY$a8Ig-}@3Q+sx z_Yy`|a9=Su@q zCMW%rZgZ?+K%qB*Fdhg9g-EVyNy$W}ca(t-n=3=P1q`Q8OE^k=^Edf1XY_R0*%J10 z>y|hlOJ~H<(NU>w&>tvf{`gzDOLcWcMZidZ|FcJD`xnPmh@2A+akB_Ly3?lv6&*fD z_ahY#K8;#mT1F`X=`Fa&q|P^$kjzry}6jGba?6g& z7PXcn1+`tk7G-Kc+z2odjz8)={l#whw%-~4x^#oZ!{ za_3Ct>*mEK!ZYnrMw}d~#PXB0(BF@C4rsBhEiLj)OiTfInF-8Ya(_xJr8}`2K!Z~z z`6kP+lo4Qf^^HXbsUE+n&(LjVl1P&A;Nakk7xD4gfVyzDs$9i;ZET?7!6BI)&>~)4 z@FHO!xRh7`h+0X|=zlTz-&bGKB9DcHg$DstJ2m)YSIN3D@Btslx(sSA>6RW}XTcem zHC+lQ+%iQ)MMqYEWU|%)ZFXJfPa2x~SA$>zQ6xhKr*q1*VOGsJHW5ofww!|D)oYQF zkquf}T4{S@?2PMuM&{;Y7S`5lt1BzMhTue(lgjZ8TA7|f@B4d3wm5g0FEP^HIsEdPzj<3EZ zCwO4RS3yCce|VT)IG)L%DhH5N8>_0S>Z_`*r2drsHafab2nq`F1!&AQopM;!N5iYR z$+v*tU|CgS0l{;1U$d;Ntw1()}BcYSwvclA~`HbKJwGtK#ruW zt=(mKm_9x}exyL1w{%$Y!n>d6*jR_atB)C0IY*Ax=R)0pf5ZW4sq3p1!S9Fs4{uj~ A>i_@% literal 0 HcmV?d00001 diff --git a/solution/CONTEST_README.md b/solution/CONTEST_README.md index 992d7230dd9a0..1e35f12bb5c89 100644 --- a/solution/CONTEST_README.md +++ b/solution/CONTEST_README.md @@ -22,6 +22,20 @@ ## 往期竞赛 +#### 第 369 场周赛(2023-10-29 10:30, 90 分钟) 参赛人数 4121 + +- [2917. 找出数组中的 K-or 值](/solution/2900-2999/2917.Find%20the%20K-or%20of%20an%20Array/README.md) +- [2918. 数组的最小相等和](/solution/2900-2999/2918.Minimum%20Equal%20Sum%20of%20Two%20Arrays%20After%20Replacing%20Zeros/README.md) +- [2919. 使数组变美的最小增量运算数](/solution/2900-2999/2919.Minimum%20Increment%20Operations%20to%20Make%20Array%20Beautiful/README.md) +- [2920. 收集所有金币可获得的最大积分](/solution/2900-2999/2920.Maximum%20Points%20After%20Collecting%20Coins%20From%20All%20Nodes/README.md) + +#### 第 116 场双周赛(2023-10-28 22:30, 90 分钟) 参赛人数 2904 + +- [2913. 子数组不同元素数目的平方和 I](/solution/2900-2999/2913.Subarrays%20Distinct%20Element%20Sum%20of%20Squares%20I/README.md) +- [2914. 使二进制字符串变美丽的最少修改次数](/solution/2900-2999/2914.Minimum%20Number%20of%20Changes%20to%20Make%20Binary%20String%20Beautiful/README.md) +- [2915. 和为目标值的最长子序列的长度](/solution/2900-2999/2915.Length%20of%20the%20Longest%20Subsequence%20That%20Sums%20to%20Target/README.md) +- [2916. 子数组不同元素数目的平方和 II](/solution/2900-2999/2916.Subarrays%20Distinct%20Element%20Sum%20of%20Squares%20II/README.md) + #### 第 368 场周赛(2023-10-22 10:30, 90 分钟) 参赛人数 5002 - [2908. 元素和最小的山形三元组 I](/solution/2900-2999/2908.Minimum%20Sum%20of%20Mountain%20Triplets%20I/README.md) diff --git a/solution/CONTEST_README_EN.md b/solution/CONTEST_README_EN.md index 6274df1765a81..4eba855bbc6b9 100644 --- a/solution/CONTEST_README_EN.md +++ b/solution/CONTEST_README_EN.md @@ -25,6 +25,20 @@ Get your rating changes right after the completion of LeetCode contests, https:/ ## Past Contests +#### Weekly Contest 369 + +- [2917. Find the K-or of an Array](/solution/2900-2999/2917.Find%20the%20K-or%20of%20an%20Array/README_EN.md) +- [2918. Minimum Equal Sum of Two Arrays After Replacing Zeros](/solution/2900-2999/2918.Minimum%20Equal%20Sum%20of%20Two%20Arrays%20After%20Replacing%20Zeros/README_EN.md) +- [2919. Minimum Increment Operations to Make Array Beautiful](/solution/2900-2999/2919.Minimum%20Increment%20Operations%20to%20Make%20Array%20Beautiful/README_EN.md) +- [2920. Maximum Points After Collecting Coins From All Nodes](/solution/2900-2999/2920.Maximum%20Points%20After%20Collecting%20Coins%20From%20All%20Nodes/README_EN.md) + +#### Biweekly Contest 116 + +- [2913. Subarrays Distinct Element Sum of Squares I](/solution/2900-2999/2913.Subarrays%20Distinct%20Element%20Sum%20of%20Squares%20I/README_EN.md) +- [2914. Minimum Number of Changes to Make Binary String Beautiful](/solution/2900-2999/2914.Minimum%20Number%20of%20Changes%20to%20Make%20Binary%20String%20Beautiful/README_EN.md) +- [2915. Length of the Longest Subsequence That Sums to Target](/solution/2900-2999/2915.Length%20of%20the%20Longest%20Subsequence%20That%20Sums%20to%20Target/README_EN.md) +- [2916. Subarrays Distinct Element Sum of Squares II](/solution/2900-2999/2916.Subarrays%20Distinct%20Element%20Sum%20of%20Squares%20II/README_EN.md) + #### Weekly Contest 368 - [2908. Minimum Sum of Mountain Triplets I](/solution/2900-2999/2908.Minimum%20Sum%20of%20Mountain%20Triplets%20I/README_EN.md) diff --git a/solution/README.md b/solution/README.md index dabb27a2dfecc..e79a603e62519 100644 --- a/solution/README.md +++ b/solution/README.md @@ -2923,6 +2923,14 @@ | 2910 | [合法分组的最少组数](/solution/2900-2999/2910.Minimum%20Number%20of%20Groups%20to%20Create%20a%20Valid%20Assignment/README.md) | `贪心`,`数组`,`哈希表` | 中等 | 第 368 场周赛 | | 2911 | [得到 K 个半回文串的最少修改次数](/solution/2900-2999/2911.Minimum%20Changes%20to%20Make%20K%20Semi-palindromes/README.md) | `双指针`,`字符串`,`动态规划` | 困难 | 第 368 场周赛 | | 2912 | [在网格上移动到目的地的方法数](/solution/2900-2999/2912.Number%20of%20Ways%20to%20Reach%20Destination%20in%20the%20Grid/README.md) | | 困难 | 🔒 | +| 2913 | [子数组不同元素数目的平方和 I](/solution/2900-2999/2913.Subarrays%20Distinct%20Element%20Sum%20of%20Squares%20I/README.md) | | 简单 | 第 116 场双周赛 | +| 2914 | [使二进制字符串变美丽的最少修改次数](/solution/2900-2999/2914.Minimum%20Number%20of%20Changes%20to%20Make%20Binary%20String%20Beautiful/README.md) | | 中等 | 第 116 场双周赛 | +| 2915 | [和为目标值的最长子序列的长度](/solution/2900-2999/2915.Length%20of%20the%20Longest%20Subsequence%20That%20Sums%20to%20Target/README.md) | | 中等 | 第 116 场双周赛 | +| 2916 | [子数组不同元素数目的平方和 II](/solution/2900-2999/2916.Subarrays%20Distinct%20Element%20Sum%20of%20Squares%20II/README.md) | | 困难 | 第 116 场双周赛 | +| 2917 | [找出数组中的 K-or 值](/solution/2900-2999/2917.Find%20the%20K-or%20of%20an%20Array/README.md) | | 简单 | 第 369 场周赛 | +| 2918 | [数组的最小相等和](/solution/2900-2999/2918.Minimum%20Equal%20Sum%20of%20Two%20Arrays%20After%20Replacing%20Zeros/README.md) | | 中等 | 第 369 场周赛 | +| 2919 | [使数组变美的最小增量运算数](/solution/2900-2999/2919.Minimum%20Increment%20Operations%20to%20Make%20Array%20Beautiful/README.md) | | 中等 | 第 369 场周赛 | +| 2920 | [收集所有金币可获得的最大积分](/solution/2900-2999/2920.Maximum%20Points%20After%20Collecting%20Coins%20From%20All%20Nodes/README.md) | | 困难 | 第 369 场周赛 | ## 版权 diff --git a/solution/README_EN.md b/solution/README_EN.md index 28238034c5418..3f01369883802 100644 --- a/solution/README_EN.md +++ b/solution/README_EN.md @@ -2921,6 +2921,14 @@ Press Control + F(or Command + F on | 2910 | [Minimum Number of Groups to Create a Valid Assignment](/solution/2900-2999/2910.Minimum%20Number%20of%20Groups%20to%20Create%20a%20Valid%20Assignment/README_EN.md) | `Greedy`,`Array`,`Hash Table` | Medium | Weekly Contest 368 | | 2911 | [Minimum Changes to Make K Semi-palindromes](/solution/2900-2999/2911.Minimum%20Changes%20to%20Make%20K%20Semi-palindromes/README_EN.md) | `Two Pointers`,`String`,`Dynamic Programming` | Hard | Weekly Contest 368 | | 2912 | [Number of Ways to Reach Destination in the Grid](/solution/2900-2999/2912.Number%20of%20Ways%20to%20Reach%20Destination%20in%20the%20Grid/README_EN.md) | | Hard | 🔒 | +| 2913 | [Subarrays Distinct Element Sum of Squares I](/solution/2900-2999/2913.Subarrays%20Distinct%20Element%20Sum%20of%20Squares%20I/README_EN.md) | | Easy | Biweekly Contest 116 | +| 2914 | [Minimum Number of Changes to Make Binary String Beautiful](/solution/2900-2999/2914.Minimum%20Number%20of%20Changes%20to%20Make%20Binary%20String%20Beautiful/README_EN.md) | | Medium | Biweekly Contest 116 | +| 2915 | [Length of the Longest Subsequence That Sums to Target](/solution/2900-2999/2915.Length%20of%20the%20Longest%20Subsequence%20That%20Sums%20to%20Target/README_EN.md) | | Medium | Biweekly Contest 116 | +| 2916 | [Subarrays Distinct Element Sum of Squares II](/solution/2900-2999/2916.Subarrays%20Distinct%20Element%20Sum%20of%20Squares%20II/README_EN.md) | | Hard | Biweekly Contest 116 | +| 2917 | [Find the K-or of an Array](/solution/2900-2999/2917.Find%20the%20K-or%20of%20an%20Array/README_EN.md) | | Easy | Weekly Contest 369 | +| 2918 | [Minimum Equal Sum of Two Arrays After Replacing Zeros](/solution/2900-2999/2918.Minimum%20Equal%20Sum%20of%20Two%20Arrays%20After%20Replacing%20Zeros/README_EN.md) | | Medium | Weekly Contest 369 | +| 2919 | [Minimum Increment Operations to Make Array Beautiful](/solution/2900-2999/2919.Minimum%20Increment%20Operations%20to%20Make%20Array%20Beautiful/README_EN.md) | | Medium | Weekly Contest 369 | +| 2920 | [Maximum Points After Collecting Coins From All Nodes](/solution/2900-2999/2920.Maximum%20Points%20After%20Collecting%20Coins%20From%20All%20Nodes/README_EN.md) | | Hard | Weekly Contest 369 | ## Copyright diff --git a/solution/summary.md b/solution/summary.md index 6c530673acf71..104a5e9ad401c 100644 --- a/solution/summary.md +++ b/solution/summary.md @@ -2970,3 +2970,11 @@ - [2910.合法分组的最少组数](/solution/2900-2999/2910.Minimum%20Number%20of%20Groups%20to%20Create%20a%20Valid%20Assignment/README.md) - [2911.得到 K 个半回文串的最少修改次数](/solution/2900-2999/2911.Minimum%20Changes%20to%20Make%20K%20Semi-palindromes/README.md) - [2912.在网格上移动到目的地的方法数](/solution/2900-2999/2912.Number%20of%20Ways%20to%20Reach%20Destination%20in%20the%20Grid/README.md) + - [2913.子数组不同元素数目的平方和 I](/solution/2900-2999/2913.Subarrays%20Distinct%20Element%20Sum%20of%20Squares%20I/README.md) + - [2914.使二进制字符串变美丽的最少修改次数](/solution/2900-2999/2914.Minimum%20Number%20of%20Changes%20to%20Make%20Binary%20String%20Beautiful/README.md) + - [2915.和为目标值的最长子序列的长度](/solution/2900-2999/2915.Length%20of%20the%20Longest%20Subsequence%20That%20Sums%20to%20Target/README.md) + - [2916.子数组不同元素数目的平方和 II](/solution/2900-2999/2916.Subarrays%20Distinct%20Element%20Sum%20of%20Squares%20II/README.md) + - [2917.找出数组中的 K-or 值](/solution/2900-2999/2917.Find%20the%20K-or%20of%20an%20Array/README.md) + - [2918.数组的最小相等和](/solution/2900-2999/2918.Minimum%20Equal%20Sum%20of%20Two%20Arrays%20After%20Replacing%20Zeros/README.md) + - [2919.使数组变美的最小增量运算数](/solution/2900-2999/2919.Minimum%20Increment%20Operations%20to%20Make%20Array%20Beautiful/README.md) + - [2920.收集所有金币可获得的最大积分](/solution/2900-2999/2920.Maximum%20Points%20After%20Collecting%20Coins%20From%20All%20Nodes/README.md) diff --git a/solution/summary_en.md b/solution/summary_en.md index c86edb99ce777..ebdf1445df18f 100644 --- a/solution/summary_en.md +++ b/solution/summary_en.md @@ -2970,3 +2970,11 @@ - [2910.Minimum Number of Groups to Create a Valid Assignment](/solution/2900-2999/2910.Minimum%20Number%20of%20Groups%20to%20Create%20a%20Valid%20Assignment/README_EN.md) - [2911.Minimum Changes to Make K Semi-palindromes](/solution/2900-2999/2911.Minimum%20Changes%20to%20Make%20K%20Semi-palindromes/README_EN.md) - [2912.Number of Ways to Reach Destination in the Grid](/solution/2900-2999/2912.Number%20of%20Ways%20to%20Reach%20Destination%20in%20the%20Grid/README_EN.md) + - [2913.Subarrays Distinct Element Sum of Squares I](/solution/2900-2999/2913.Subarrays%20Distinct%20Element%20Sum%20of%20Squares%20I/README_EN.md) + - [2914.Minimum Number of Changes to Make Binary String Beautiful](/solution/2900-2999/2914.Minimum%20Number%20of%20Changes%20to%20Make%20Binary%20String%20Beautiful/README_EN.md) + - [2915.Length of the Longest Subsequence That Sums to Target](/solution/2900-2999/2915.Length%20of%20the%20Longest%20Subsequence%20That%20Sums%20to%20Target/README_EN.md) + - [2916.Subarrays Distinct Element Sum of Squares II](/solution/2900-2999/2916.Subarrays%20Distinct%20Element%20Sum%20of%20Squares%20II/README_EN.md) + - [2917.Find the K-or of an Array](/solution/2900-2999/2917.Find%20the%20K-or%20of%20an%20Array/README_EN.md) + - [2918.Minimum Equal Sum of Two Arrays After Replacing Zeros](/solution/2900-2999/2918.Minimum%20Equal%20Sum%20of%20Two%20Arrays%20After%20Replacing%20Zeros/README_EN.md) + - [2919.Minimum Increment Operations to Make Array Beautiful](/solution/2900-2999/2919.Minimum%20Increment%20Operations%20to%20Make%20Array%20Beautiful/README_EN.md) + - [2920.Maximum Points After Collecting Coins From All Nodes](/solution/2900-2999/2920.Maximum%20Points%20After%20Collecting%20Coins%20From%20All%20Nodes/README_EN.md) From 0c6efb410d5c6c103ce375d80f541111a5c569bb Mon Sep 17 00:00:00 2001 From: Doocs Bot Date: Mon, 30 Oct 2023 08:53:20 +0800 Subject: [PATCH 2/2] Optimised images with calibre/image-actions --- .../images/ex1-copy.png | Bin 11850 -> 5602 bytes .../images/ex2.png | Bin 9142 -> 4314 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/solution/2900-2999/2920.Maximum Points After Collecting Coins From All Nodes/images/ex1-copy.png b/solution/2900-2999/2920.Maximum Points After Collecting Coins From All Nodes/images/ex1-copy.png index 175d8b6a6154ea8b4836b2827f74480c3b88d8f1..da340d84e22220cf35eda5e974529d89a55b1d1d 100644 GIT binary patch literal 5602 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 F{{vxR6T<)i diff --git a/solution/2900-2999/2920.Maximum Points After Collecting Coins From All Nodes/images/ex2.png b/solution/2900-2999/2920.Maximum Points After Collecting Coins From All Nodes/images/ex2.png index 8df50f399a0e9f82acb3daf12679f1bf455898cd..b2f9218fffa53eabddeedfb2a3e666e76f5e597f 100644 GIT binary patch literal 4314 zcmV<05GC)4P)K7fO;@IAwUv=J*3xNSd>heZNZWMLq=_-97!Ag+#6+#NsiEznO>GLPFck_S z$n!q`>xDvrml^J5?s@M0{}Mu+k(uY7|GCdS&(}GYMb?Ul{@I~_TBFhEr=_K({V%-m z!q3k?|NQWC&pr1z5{b;{_Y{8P-*_GG>;HGTq@?7(_&ewCBQzy3fx4oiqIb2k-&wbA z-E?(z^~mnsyEDg*9h?5@tFP3}n>W?3zy7L5M@QB4^t1x_jep~HypR9a+1WYs$}6vo z;P3G{`txpY+_>>Qd_GM~BvD&lUjC8pwSV8VX;WtJ-o2T#XV2OW?FIN8d|o1v7>UJV zf8l$|%F0gQdue*&7Y*78udZLeeq1}|@QoWcR6fA>;6}jr;``AKN-rin?cAhs4iI+9U@$BZf+h@0R-1oSy_3FDw8E0zon&RPz4x$eM7iTs!bMzIzjF6 zmwE!=dZ{|G2e*jvRfxbCKwtM6svq*{Ow5J^WpJCzAQ;yji^UGm3&IH&fRyRenQo>* zas3t-!omkuKuul1@`_X{HQ}rTldyojI@kiB2)05DaxYML*pAI#rtHovzOa@6~ zk?WFV5A3CT|2y;^vxy+faoG0jy9M@w-7Ka@H<}$t^G$co9oWr!Rv&;EN-Of?)0J}v z^#QDB1u}@C@&2bM3?a#>CMG6SUtgbk^UXKap+kr4`1j6@DD!tV9|Ss z`SD(Vf4>;#huxfVsl-IzheJuBqoc!i@KdKwEqd?u*I&2a`}*szMaBKjfSe0m?D^e+ z9v{wh{P^)j@9o*M$A0h9rAzGjN$_I+bUM9k%-_`1WWV?Ax8I72`3njP81r+s$30iB zT(KQI9*-~TVM|I%?Dr(i^>em|^ZcHM5wlKy_wL;VJ1FrQdVgv2{6$4YKhcW}rL?s4 zvZNK>R4QdVdUbWRdjI|R)zPCz=jQnD-@h+zg%>O2^ddvS-jvSH&KXHg_0Bu*EZEwB zr@^^%=fv&p!Jeq%;^J<4k-4;DccL`M!m2Lj^uPP=J2f*iqa>p3hIpU5It_;V`Bw?| z^9Nw6pC`FiH_geDTmc{&jo#)N-rRt_aQ2zrV>rk{kVqsL`s4tzUBqIsqx2s0sY4zb zx^(t1Z%?omyO^;pOJFD1i(V5Dkb9D$Pj(=usqXndq}K!oW@*k6W@!#)?~nZaPw3vu zbMoZLDcFhL5(pU0>l?<&X|}KBiZMh-frA(ACv77G}rS*FO$B&>O-B z_O2*Nxjgd;uG@Ncnv8pR!bn9$MLT9W!nWTZ*IQXxIb2p&c932WVydgFd+O`!Llyt; z+_`h8rl#gJ)h8GL_cb>+hvEikYHAv+s;W9q)yW(>47k?P(h}$!0N1BOz3Wt)EHwtW z9@HlQdVD%Q`M)3}z!)GXgJ4_-Vtj@=BrEh_@C;^wOrHit`!TD-!7a&&SS)rx|3Zqv z2~!ua(0)#5lGRd&70`G*K4{8bAhZ)(7Mzt^E?^PYQ=utr{z@j3q6Y$d_UxHhw{G22 z?$se)bF;X(_#Var>2z9DVQU;jLA#u7$^X$mZ&NPf6_@5YR3lD2;mDugXM%C&7VU6O zV9h^>qId%kFL>K={(sY;d)lkWc92LU9_A}A5WWZLMex1OVe^J%+N>xYal=blI8iO~ z0u>e(K0v0kwzjqma$S10PJqwB=Q$|^|3X43C$COz7B?+>f3j+na|2{OJA~Yz+Bxqa z%Q4b?qdtHhC{Ll%3Fh4~8v}=)trCgf_%~k1`}lt-41xUk_AjKPz7-W>^iMx(grUeAszf?vKJ9X!sCtOkQ3DI5fSigbtcTG5&vv@-xm4>$Nlfr{jm(1`K}~=QHdh6g-TuBjBSx)HY%K&p4l* z0%4rbaF9?~#{Yzl&-kA(&S(5j80Yh8Nkj`s$7lS{o{KR4XPi$M|1-`fe2OwoCA2Gh zD8l%kaXw-EZ&;j9_;h7FO4huip}pA?F~lSkf$=}d>*JS>&!;ZqPC^~n;}C|PG&W)U z&p4m(Y0UVNP#^Xzgdr(oN!tME0$~!wdXL7AlzI*rX%={|lMMXvLTDey#C)90CsVyrjJE8CX-(#`Z zUx`FwoDy)9d|40m^TKT$rSzkd?#&^^~Zw2OXC-PVfj`muFw z^XAPXy}i9k66tjMDcXhhp`G+|>gE~xE=?5_6g=tZ=onRk(d~PLcIp9Fiat->T+agN z5&J+q9v{M}-UQH2v={9T@$3+Fb3;W%MLXtmySlo@l!54WkE8v1aCIxaCW@AVs8hrXV{s;a8<0gvygn;R-CE3Y*- zHxH=*g6q;D!Sx_IK6P^+D_(DDX$hnOXVKR;7_=LJy14|8mZ0_=OZ6l{34y4aOZ1@P z3}QtUA`nZOJ_x36E{Vlr2QaD*${;D1!4$6B)M-%a=3X}}Bq-CT#oSD%SgHaz?bt+Q%ASw426liw zEcv@ZsheBfupp95CP!($f55InXIri4g)HjkPPaykmT9)dz%G{DgB8@xt!_BUlTN3n zX|l!OV1;wCNF3D7y>1OSI!1FX5A0*fJ6lTK-0G%dqpNsE_X z^EA`Sz)qH&^cvL7t!~KAl1L;T(nKqR^cqfn8Q-C99_UtBSok1c`B_W{c0z(B3C>U5 z-0N0{j9fHN_8`NUfIUCd&8=?8!PwT;mZ52~2PyWP9Fx95-8|4u_a1kUGm&Hu?1dz& zK5tv5ZZ36;AX{$O_Id28J>W3eGkgJV{fLlFoYm_~Vb*gRNeE`QctmdREG~AUhw+N%#3|Q zK*Ng{FUr#me$Mv%!&`5?Woxx##|||xFd%v?GN)TnQPEFQb2>_Q zen02=CFwRfIXTzk|MuH&N;-48VWmsz3a@nMcUB57`;@9gjBYp~H9M=*)YP=(&#hax zc)NHtAzXc&DV`5f>t?Q#*}{XD}<-8|4O7KrrdGh2G&9pqogD)*VKXvm)H&*yq0aj)Sux?Im zr>8X6VtRXfu^~!wO)l!@Qa4uhTLxBR41sQ_TbfKJ$7r^HKz&>3b$F?pH@dNs_dHmE zJ!HD+N5#kSczlQ^R0?*`1E!Q^0MyMR-J;RxKv!2+sOOON^^d_0mO)TAZ*;>R2qpE5 z?^=WFc1|MIS!O}qywI(ztn6TAW#w?#_Ko9uF-uTUQPFN02zB#Fx0;%o(>r(W3{@Oi zUtd2|U0vN{84Pvvh^nfp^G!`ngJCdWb8|BWN_|!Upl%+aA0^jYT3Q0#li>PvxNyx1 z5Y){>Lk6`cLC=BfvjPZp^YBrMSTZPsDO?9)MO>E^V5pmigDK1=m_D6`_G5NHU(XpU z1W-2*r_(T>YU+YYDwUc*`(v@#0V_mMHxCz7u#$$QWK;H(pq;wCgU$+IofS@~o0oe^ zu!-o{v16il6?SxVjG~>U?A4)e=IFK^+eZGsrZt!Tu_85|w+ z`)n!BZlWE|NuEafId#hy4LCH6Q}al#k+1wR_#XXz5AnUaN5i4z2KqI1^NU*KmqEfH zWXwW}J>*REYQ7ntgU@SgYs=vC3kwS$IQdy>>BrPf)GPyXOd`oDvgIOOH1f=&&;lxE zVEz`PdKhN5+8}=8-*_GGXQ`VBAWby#q_?8d2ukgs z))b0`q1vER=F=`4iRyWH9krB7N=o{j${MZC-$&@1)Gb&32b2vNLWt>##Q*>R07*qo IM6N<$g6_Pi(*OVf literal 9142 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 A>i_@%