CCF
2024-09-09 04:15:210 次浏览
投稿
试题编号:2023-09-23-05-C-02试题名称:巧夺大奖时间限制:1.0 s内存限制:128.0 MB3.2.1问题描述小明参加了一个巧夺大奖的游戏节目。主持人宣布了游戏规则:1、游戏分为n 个时间段,参加者每个时间段可以选择一个小游戏。2、游戏中共有 n个小游戏可供选择。3、每个小游戏有规定的时限和奖励。对于第 i个小游戏,参加者必须在第Ti 个时间段结束前完成才能得到奖励Ri 。小明发现,这些小游戏都很简单,不管选择哪个小游戏,他都能在一个时间段内完成。关键问题在于,如何安排每 个时间段分别选择哪个小游戏,才能使得总奖励最高?3.2.2输入描述输入第一行,包含一个正整数 n。 既是游戏时间段的个数,也是小游戏的个数。约定1m){m=r[j];k=j;}}if (k!=0){//如果找到了ans+=r[k];//加分r[k]=0;//清零,防止重复}}cout> n;for (int i = 0; i < n; i++)arrange[i] = false;for (int i = 0; i < n; i++)cin >> games[i].T;for (int i = 0; i < n; i++)cin >> games[i].R;sort(games, games + n, game_cmp);int sum = 0;for (int i = 0; i < n; i++) {for (int t = games[i].T - 1; t >= 0; t--)if (!arrange[t]) {arrange[t] = true;sum += games[i].R;break;}}cout