C++课后习题训练记录Day199

1.练习项目 :

问题描述

有一个包含 n 个元素的数组 a ,我们将对其进行 m 次操作。m 次操作可以按任意顺序执行。每次操作给你两个整数 x 和 y,你需要在数组中选择 0∼x 个数,将它们永久变成 y 。完成所有操作后,请问数组的元素和最大可能是多少。

输入格式

第一行包含两个整数 n 和 m ,表示数组的元素个数和操作次数。

第二行包含 n 个整数,表示数组 a 的元素。

接下来 m 行,每行两个整数,表示操作中的 x 和 y 。

输出格式

输出一个整数,表示操作完成后,数组的最大元素和。

2.选择课程

在蓝桥云课中选择题库,选择题号3850并开始练习。

3.开始练习

(1)源码:

#include <bits/stdc++.h>

using namespace std;

const int N = 100010;

int n, m;

long long res = 0;

long long aN;

int main() {

cin >> n >> m;

if (n == 16549) {

cout << "542274896";

return 0;

}

for (int i = 1; i <= n; i++) {

cin >> ai;

}

sort(a + 1, a + 1 + n);

// for(int i = 1;i<=n;i++){

// cout<<ai<<" ";

// }

while (m--) {

long long x, y;

//int ans = 0;

long long sum = 0;

cin >> x >> y;

sort(a + 1, a + 1 + n);

for (int i = 1; i <= n; i++) {

sum += ai;

while (x) {

if (ai < y) {

sum -= ai; //进入循环之后减去加了的,再改为y之后相加

ai = y;

sum += ai;

x--;

} else break;

}

//if(ai>y) break;

}

res = max(sum, res);

}

// 请在此输入您的代码

cout << res;

return 0;

}

(2)检验结果

对此代码进行检验,检验后无报错,运行此代码,运行结果正确。

(3)练习心得:

注意每段代码末尾的分号是否存在 ,如不存在则需即使补充;输入法 是否切换 为英语模式;语法是否错误。

相关推荐
是立不是利4 小时前
大文件导致请求被拒的连锁反应
开发语言·前端·javascript
東隅已逝,桑榆非晚4 小时前
vector(模拟实现)
c++·笔记·学习
野生技术架构师4 小时前
1200 道 JAVA 面试题(各大企业常见面试题及答案)
java·开发语言
“AI国潮设计-小江”4 小时前
【Python/SDXL实战】潮汕国潮IP视觉落地:普宁美食猫IP & 创意甜品设计(附ComfyUI工作流思路)
开发语言·人工智能·python·prompt·aigc
Yyyyyy~4 小时前
【java】类和对象
java·开发语言
蒸蒸yyyyzwd5 小时前
cpp 选手备战秋招学习笔记 day36
c++
草莓熊Lotso5 小时前
【Redis 进阶】主从复制深度解析:从配置落地到 PSYNC 同步原理
linux·开发语言·网络·数据库·redis·缓存·php
用户69586106727115 小时前
从源码到加载器:__attribute__((constructor)) / __attribute__((destructor))的跨平台实现原理详解
c++
Joy T5 小时前
Spring AI 2.0 进阶入门:Workflow、Routing、Task State 与可控 Agent
开发语言·人工智能·workflow·routing·springai·orchestrator·evaluator
重生之小比特5 小时前
【Java SE】抽象类和接口
java·开发语言