当前位置:实例文章 » 其他实例» [文章]freee Programming Contest 2023(AtCoder Beginner Contest 310)

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 个整

相关标签:算法深度优先图论
其他信息

其他资源

Top