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)练习心得:

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

相关推荐
菜鸟~noob2331 分钟前
【电子战】第三季预告—波武器与电子系统强力毁伤
开发语言·数据库·matlab·电子战
惊讶的猫1 小时前
工具选对之后还不够:商城 Agent 的参数与权限治理
开发语言·python
cmpxr_1 小时前
【MicroPython】如何刷新ESP8266的固件
开发语言·micropython
搭贝1 小时前
上厕所的时间搭好一套系统:AI自动生成实测
开发语言·人工智能·低代码·ai·php·搭贝
智感子2 小时前
智能称重·数据上云:从仪表读数到可追溯的计量凭证
开发语言·php
\光辉岁月/2 小时前
7.javase-面向对象
java·开发语言
weixin_531094692 小时前
heap_4内存管理
java·开发语言·算法
余额瞒着我当琳2 小时前
红黑树的实现--红黑树的概念、规则、效率、结构、旋转、查找、验证
数据结构·c++·算法
疯狂的维修2 小时前
关于用C#写电机起保停控制
开发语言·c#
青少儿编程课堂2 小时前
AC自动机多模式串匹配精讲:校园关键词巡检实战解析
c++·python·算法·bfs·信息学竞赛