运动会到了,小陈子虽然他太菜了,但他很想参加跑步比赛。但是他那邪恶的体委让他的能力值必须达到x才能让他参加。
但是他时间有限于是他找到了你,帮他计划训练方案。
输入
第1行一个整数x表示目标提升,a表示拥有的时间;
第2行一个整数n代表有n个训练方案(必须完整训练才会有提升,接下来n行整数,每行一个t(时间)和w(提升)
输出
若可以参加运动会并打体委的脸那么输出Yes,否则输出No;
样例输入
10 10
3
6 4
4 9
3 5
样例输出
Yes
第1行一个整数x表示目标提升,a表示拥有的时间;
第2行一个整数n代表有n个训练方案(必须完整训练才会有提升,接下来n行整数,每行一个t(时间)和w(提升)
若可以参加运动会并打体委的脸那么输出Yes,否则输出No;
10 10
3
6 4
4 9
3 5
Yes
就不用cai guai
#include <bits/stdc++.h>
using namespace std;
struct node {
int time; // 时间
int worth; // 提升值
};
bool cmp(node a, node b) {
return a.time == b.time ? a.worth > b.worth : a.time < b.time;
}
int main(void)
{
int x, a; // x为目标提升,a为拥有的时间
cin >> x >> a;
int n; // 训练方案数量
cin >> n;
vector<node> plans(n);
for (int i = 0; i < n; i++) {
cin >> plans[i].time >> plans[i].worth;
}
// 按时间排序,时间相同则按提升值降序
sort(plans.begin(), plans.end(), cmp);
bool can_participate = false;
int total_worth = 0;
int time_spent = 0;
for (int i = 0; i < n && time_spent + plans[i].time <= a; i++) {
time_spent += plans[i].time;
total_worth += plans[i].worth;
if (total_worth >= x) {
can_participate = true;
break;
}
}
if (can_participate) {
cout << "Yes";
} else {
cout << "No";
}
return 0;
}
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool canParticipate(int target, int timeAvailable, vector<pair<int, int>> &plans) {
sort(plans.begin(), plans.end());
int n = plans.size();
int dp[timeAvailable + 1] = {0};
for (int i = 0; i < n; ++i) {
for (int j = timeAvailable; j >= plans[i].first; --j) {
dp[j] = max(dp[j], dp[j - plans[i].first] + plans[i].second);
}
}
return dp[timeAvailable] >= target;
}
int main() {
int target, timeAvailable;
cin >> target >> timeAvailable;
int n;
cin >> n;
vector<pair<int, int>> plans(n);
for (int i = 0; i < n; ++i) {
cin >> plans[i].first >> plans[i].second;
}
cout << (canParticipate(target, timeAvailable, plans) ? "Yes" : "No") << endl;
return 0;
}
动态归划呐,还有你们这代码都扔给AI的吧
代码解释:
注意:在实际应用中,输入和输出的格式应与题目要求一致,且应处理可能的输入错误。但在这个示例中,为了简洁,我们假设输入总是有效的。
@陈洪森
怎么你们可能会打这么长的变量名
不是,我最近在学习抽象的变量名,提高我的英语素养
楼**才是扔AI的,代码解释是他会写的?
对的,我会写
你写的?
e
6
不信
对呀
你会pair?!
AI不是在代码中就写注释了吗
#include <iostream>
using namespace std;
int main() {
// 读取第一行的两个整数:x(目标提升)和a(拥有的时间)
int x, a;
cin >> x >> a;
// 读取第二行的整数n,表示有n个任务或选项
int n;
cin >> n;
// 假设每个任务或选项都有一些特定的属性,这里我们仅以一个整数为例(比如每个任务所需的时间或提供的提升值)
// 你可以根据需要调整这个数组或容器的类型
int tasks[100]; // 假设最多有100个任务,根据实际需要调整大小或使用动态数据结构如vector
// 读取接下来的n行数据
for (int i = 0; i < n; ++i) {
cin >> tasks[i]; // 假设这里读取的是每个任务所需的时间或提供的提升值
}
// 现在你可以根据x, a和tasks数组中的数据进行你的逻辑处理
// 例如,选择哪些任务可以最大化提升同时不超过拥有的时间a
// 这里只是一个简单的示例,没有实现具体的逻辑
cout << "目标提升: " << x << ", 拥有的时间: " << a << ", 任务数量: " << n << endl;
// 输出任务信息(仅作为示例)
for (int i = 0; i < n; ++i) {
cout << "任务" << i+1 << ": " << tasks[i] << endl;
}
return 0;
}
自招了,而且我不写注释他们看得懂?还有,你代码原来打空格呀
#include <iostream>
using namespace std;
int main() {
int x, a;
cin >> x >> a;
int n;
cin >> n;
int tasks[100];
for (int i = 0; i < n; ++i) {
cin >> tasks[i];
}
cout << "目标提升: " << x << ", 拥有的时间: " << a << ", 任务数量: " << n << endl;
for (int i = 0; i < n; ++i) {
cout << "任务" << i+1 << ": " << tasks[i] << endl;
}
return 0;
}
不,我招啥了
打空格不是直接就可以格式化的吗
P9228