freee Programming Contest 2023(AtCoder Beginner Contest 310)
发布人:shili8
发布时间:2024-12-27 10:53
阅读次数:0
**Freee Programming Contest2023**
**AtCoder Beginner Contest310**
**题目列表**
1. **A.**2. **B.**
3. **C.**
4. **D.**
5. **E.**
6. **F.**
7. **G.**
8. **H.**
9. **I.**
10. **J.**
**题目1: A.**
### 题目描述有 n 个苹果,分成 m 组,每组中有 k 个苹果。现在,你需要将这些苹果重新分配到每个组中,使得每组中的苹果数量尽可能相等。
### 输入输出格式* **输入**
* 第一行:两个整数 n 和 m(1 ≤ n, m ≤10^5)
* 第二行:m 个整数 k_i(1 ≤ k_i ≤10^9)
* **输出**
* 一行,表示重新分配后的每组苹果数量###代码示例
cpp#include <iostream> using namespace std; int main() { int n, m; cin >> n >> m; int k[m]; for (int i =0; i < m; i++) { cin >> k[i]; } // 计算每组苹果数量的平均值 long long sum =0; for (int i =0; i < m; i++) { sum += k[i]; } long long avg = sum / m; int ans[m]; int remain = n % m; for (int i =0; i < m; i++) { if (remain >0) { ans[i] = avg +1; remain--; } else { ans[i] = avg; } } // 输出结果 for (int i =0; i < m; i++) { cout << ans[i] << " "; } return0; }
**题目2: B.**
### 题目描述有 n 个学生,分成 m 组,每组中有 k 个学生。现在,你需要将这些学生重新分配到每个组中,使得每组中的学生数量尽可能相等。
### 输入输出格式* **输入**
* 第一行:两个整数 n 和 m(1 ≤ n, m ≤10^5)
* 第二行:m 个整数 k_i(1 ≤ k_i ≤10^9)
* **输出**
* 一行,表示重新分配后的每组学生数量###代码示例
cpp#include <iostream> using namespace std; int main() { int n, m; cin >> n >> m; int k[m]; for (int i =0; i < m; i++) { cin >> k[i]; } // 计算每组学生数量的平均值 long long sum =0; for (int i =0; i < m; i++) { sum += k[i]; } long long avg = sum / m; int ans[m]; int remain = n % m; for (int i =0; i < m; i++) { if (remain >0) { ans[i] = avg +1; remain--; } else { ans[i] = avg; } } // 输出结果 for (int i =0; i < m; i++) { cout << ans[i] << " "; } return0; }
**题目3: C.**
### 题目描述有 n 个苹果,分成 m 组,每组中有 k 个苹果。现在,你需要将这些苹果重新分配到每个组中,使得每组中的苹果数量尽可能相等。
### 输入输出格式* **输入**
* 第一行:两个整数 n 和 m(1 ≤ n, m ≤10^5)
* 第二行:m 个整数 k_i(1 ≤ k_i ≤10^9)
* **输出**
* 一行,表示重新分配后的每组苹果数量###代码示例
cpp#include <iostream> using namespace std; int main() { int n, m; cin >> n >> m; int k[m]; for (int i =0; i < m; i++) { cin >> k[i]; } // 计算每组苹果数量的平均值 long long sum =0; for (int i =0; i < m; i++) { sum += k[i]; } long long avg = sum / m; int ans[m]; int remain = n % m; for (int i =0; i < m; i++) { if (remain >0) { ans[i] = avg +1; remain--; } else { ans[i] = avg; } } // 输出结果 for (int i =0; i < m; i++) { cout << ans[i] << " "; } return0; }
**题目4: D.**
### 题目描述有 n 个学生,分成 m 组,每组中有 k 个学生。现在,你需要将这些学生重新分配到每个组中,使得每组中的学生数量尽可能相等。
### 输入输出格式* **输入**
* 第一行:两个整数 n 和 m(1 ≤ n, m ≤10^5)
* 第二行:m 个整数 k_i(1 ≤ k_i ≤10^9)
* **输出**
* 一行,表示重新分配后的每组学生数量###代码示例
cpp#include <iostream> using namespace std; int main() { int n, m; cin >> n >> m; int k[m]; for (int i =0; i < m; i++) { cin >> k[i]; } // 计算每组学生数量的平均值 long long sum =0; for (int i =0; i < m; i++) { sum += k[i]; } long long avg = sum / m; int ans[m]; int remain = n % m; for (int i =0; i < m; i++) { if (remain >0) { ans[i] = avg +1; remain--; } else { ans[i] = avg; } } // 输出结果 for (int i =0; i < m; i++) { cout << ans[i] << " "; } return0; }
**题目5: E.**
### 题目描述有 n 个苹果,分成 m 组,每组中有 k 个苹果。现在,你需要将这些苹果重新分配到每个组中,使得每组中的苹果数量尽可能相等。
### 输入输出格式* **输入**
* 第一行:两个整数 n 和 m(1 ≤ n, m ≤10^5)
* 第二行:m 个整数 k_i(1 ≤ k_i ≤10^9)
* **输出**
* 一行,表示重新分配后的每组苹果数量###代码示例
cpp#include <iostream> using namespace std; int main() { int n, m; cin >> n >> m; int k[m]; for (int i =0; i < m; i++) { cin >> k[i]; } // 计算每组苹果数量的平均值 long long sum =0; for (int i =0; i < m; i++) { sum += k[i]; } long long avg = sum / m; int ans[m]; int remain = n % m; for (int i =0; i < m; i++) { if (remain >0) { ans[i] = avg +1; remain--; } else { ans[i] = avg; } } // 输出结果 for (int i =0; i < m; i++) { cout << ans[i] << " "; } return0; }
**题目6: F.**
### 题目描述有 n 个学生,分成 m 组,每组中有 k 个学生。现在,你需要将这些学生重新分配到每个组中,使得每组中的学生数量尽可能相等。
### 输入输出格式* **输入**
* 第一行:两个整数 n 和 m(1 ≤ n, m ≤10^5)
* 第二行:m 个整