- 题解
帮帮我,我想抄贪心算法 @金文🔥🉑 (金文炣)
- @ 2026-10-7 18:17:56
原题: #B1322. 【例6.4】拦截导弹问题(一问)
@金文🔥🉑 (金文炣) 再帮我一次呗
11 条评论
-
-
````language`
#include <iostream> using namespace std; int main() { int n[1001], t[1001], i = 0, k = 0; while (cin >> n[i]) { i++; } t[0] = n[0]; // 将第一个数存到t数组 for (int j = 1; j < i; j++) { // 从第二个开始比较 bool f = 1; int wz; int max = 40000; for (int l = 0; l <= k; l++) { // 找比n[j]大,且大小最接近的一个数 if (t[l] >= n[j] && t[l] < max) { f = 0; wz = l; max = t[l]; } } if (f) { // 如果不存在比n[j]更大的数 k++; t[k] = n[j]; // t数组添加一个数 } else { // 如果存在比n[j]更大的数 t[wz] = n[j]; // 替换t数组上的值 } } cout << k + 1; return 0; } -
#include using namespace std;
int main() { int n[1001], t[1001], i = 0, k = 0; while (cin >> n[i]) { i++; } t[0] = n[0]; // 将第一个数存到t数组 for (int j = 1; j < i; j++) { // 从第二个开始比较 bool f = 1; int wz; int max = 40000; for (int l = 0; l <= k; l++) { // 找比n[j]大,且大小最接近的一个数 if (t[l] >= n[j] && t[l] < max) { f = 0; wz = l; max = t[l]; } } if (f) { // 如果不存在比n[j]更大的数 k++; t[k] = n[j]; // t数组添加一个数 } else { // 如果存在比n[j]更大的数 t[wz] = n[j]; // 替换t数组上的值 } } cout << k + 1; return 0; }
-
#include using namespace std;
int main() { int n[1001], t[1001], i = 0, k = 0; while (cin >> n[i]) { i++; } t[0] = n[0]; // 将第一个数存到t数组 for (int j = 1; j < i; j++) { // 从第二个开始比较 bool f = 1; int wz; int max = 40000; for (int l = 0; l <= k; l++) { // 找比n[j]大,且大小最接近的一个数 if (t[l] >= n[j] && t[l] < max) { f = 0; wz = l; max = t[l]; } } if (f) { // 如果不存在比n[j]更大的数 k++; t[k] = n[j]; // t数组添加一个数 } else { // 如果存在比n[j]更大的数 t[wz] = n[j]; // 替换t数组上的值 } } cout << k + 1; return 0; }
-
#include using namespace std; int main() { int n[1001], t[1001], i = 0, k = 0; while (cin >> n[i]) { i++; } t[0] = n[0]; // 将第一个数存到t数组 for (int j = 1; j < i; j++) { bool f = 1; int wz; int max = 40000; for (int l = 0; l <= k; l++) { // 找比 n[j]大,且大小最接近的一个数 if (t[l] >= n[j] && t[l] < max) { f = 0; wz = l; max = t[l]; } } if (f) { // 如果不存在比n[j]更大的数 k++; t[k] = n[j]; // t数组添加一个数 } else { // 如果存在比n[j]更大的数 t[wz] = n[j]; // 替换t数组上的值 } } cout << k + 1; return 0; }
-
#include using namespace std; int main() { int n[1001], t[1001], i = 0, k = 0; while (cin >> n[i]) { i++; } t[0] = n[0]; // 将第一个数存到t数组 for (int j = 1; j < i; j++) { bool f = 1; int wz; int max = 40000; for (int l = 0; l <= k; l++) { // 找比n[j]大,且大小最接近的一个数 if (t[l] >= n[j] && t[l] < max) { f = 0; wz = l; max = t[l]; } } if (f) { // 如果不存在比n[j]更大的数 k++; t[k] = n[j]; // t数组添加一个数 } else { // 如果存在比n[j]更大的数 t[wz] = n[j]; // 替换t数组上的值 } } cout << k + 1; return 0; }
- 1

