首页 > 其他分享 >123. 连续子数组最大和(卡码网周赛第十九期)

123. 连续子数组最大和(卡码网周赛第十九期)

时间:2024-05-31 15:02:37浏览次数:23  
标签:卡码 周赛 10 LL 元素 123 输入 数组 dp

123. 连续子数组最大和(卡码网周赛第十九期(23年小红书提前批笔试真题))

题目描述

小红拿到了一个数组,她希望进行最多一次操作:将一个元素修改为x。小红想知道,最终的连续子数组最大和最大是多少?

输入

第一行输入一个正整数t,代表询问次数。
对于每次询问,输入两行:
第一行输入两个正整数n和x。代表数组的大小,以及小红可以修改成的元素。 第二行输入n个正整数a_i,代表小红拿到的数组

输出

输出 t 行,每行输出一个整数,代表连续子数组的最大和。

样例输入

3
5 10
5 -1 -5 -3 2
2 -3
-5 -2
6 10
4 -2 -11 -1 4 -1

样例输出

15
-2
15

提示

例如输入:
6 10
4 -2 -11 -1 4 -1
可以用10 替换 -11,连续子数组的最大和:4 -2 10 -1 4,总和为:15
数据范围:
1 ≤ t ≤ 100000
1 ≤ n ≤ 200000
-10^9 ≤ x ,a_i ≤ 10^9
每组所有询问的n的和不超过200000。

题解1(C++版本)

#include<bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
typedef long long LL;
 
LL dp[N][2]; //也可以将第一维去掉,因为状态转移只跟前一个状态相关
// dp[i][0]表示以第i个元素结尾,且到第i个元素(包括i)为止,没有修改元素,得到的子数组和的最大值
// dp[i][1]表示以第i个元素结尾,且到第i个元素(包括i)为止,修改某个元素,得到的子数组和的最大值
LL Max(LL A, LL B){
    return A > B ? A : B;
}
int t,n,x,a[N];

int main(){
    scanf("%d", &t);
    while(t--){
        memset(dp, 0, sizeof dp);
        memset(a, 0, sizeof a);
        scanf("%d%d", &n, &x);
        for(int i = 1; i <= n; i++) scanf("%d", &a[i]);
        LL ans = -1e15;
        for(int i = 1; i <= n; i++){
            dp[i][0] = (dp[i - 1][0] > 0 ? dp[i - 1][0] : 0) + a[i];
            dp[i][1] = Max((dp[i - 1][0] > 0 ? dp[i - 1][0] : 0) + x, dp[i - 1][1] + a[i]);
            ans = Max(ans, Max(dp[i][0], dp[i][1]));
        }

        printf("%lld\n", ans);
    }
    return 0;
}

标签:卡码,周赛,10,LL,元素,123,输入,数组,dp
From: https://blog.csdn.net/qq_45332149/article/details/139348559

相关文章

  • 小猴编程周赛C++ | 金币
    学习C++从娃娃抓起!记录下在学而思小猴编程学习过程中的题目,记录每一个瞬间。侵权即删,谢谢支持!附上汇总贴:小猴编程C++|汇总-CSDN博客【题目描述】猴博士将金币作为工资,发给实验室的员工。员工入职后第一个月,收到一枚金币;之后两个月(第二个月和第三个月),每个月收到两枚金......
  • 牛客周赛 Round 44 (小白历险记)
    A.唐龙守则题意:每三张撤回一张,给你n张能删除多少张思路:n/3Code:n=int(input())print(n//3)B.最大公约题意:序列中最大值和最大公约数相等其实等价于问最长的相同元素有多少思路:map储存元素统计个数最大值Code:#include<bits/stdc++.h>usi......
  • 【leetcode 399 周赛】【题解】
    第一题和第三题一样。就是求约数第二题就是模拟第4题使用线段树1,3题代码实际上发现没有下面代码的负载,比如:a*b=n,枚举a就好,a在[1,sqrt(n)内。importjava.util.*;classSolution{publicintnumberOfPairs(int[]nums1,int[]nums2,intk){......
  • 小猴编程周赛C++ | 字符串价值
    学习C++从娃娃抓起!记录下在学而思小猴编程学习过程中的题目,记录每一个瞬间。侵权即删,谢谢支持!附上汇总贴:小猴编程C++|汇总-CSDN博客【题目描述】一个字符串的价值定义为:该字符串所有字母价值之和,一个字母如果在字符串中是第一次出现,则该字母的价值为2,否则价值为1,并且......
  • 小猴编程周赛C++ | 环形最大子段和
    学习C++从娃娃抓起!记录下在学而思小猴编程学习过程中的题目,记录每一个瞬间。侵权即删,谢谢支持!附上汇总贴:小猴编程C++|汇总-CSDN博客【题目描述】给出一个长度为n的环形数组a1......
  • 小猴编程周赛C++ | 密码锁
    学习C++从娃娃抓起!记录下在学而思小猴编程学习过程中的题目,记录每一个瞬间。侵权即删,谢谢支持!附上汇总贴:小猴编程C++|汇总-CSDN博客【题目描述】小猴有一个密码锁,密码锁是由n个轮子组成,每个轮子上都写着数字a......
  • 广东开放大学《企业财务报表分析》形成性考核1234答案
    下列关于每股收益的表述错误的是(  )上市公司必须在利润表中披露基本每股收益和稀释每股收益每股收益反映企业为每一普通股和优先股股份所实现的税后净利润稀释每股收益要考虑到当期所有发行在外的稀释性潜在普通股的影响每股收益是用于反映企业的经营成果,衡量普通股的投资......
  • C123【模板】扩展域并查集 P1892 [BOI2003] 团伙
    视频链接:C123【模板】扩展域并查集P1892[BOI2003]团伙_哔哩哔哩_bilibili  P1892[BOI2003]团伙-洛谷|计算机科学教育新生态(luogu.com.cn)//扩展域并查集#include<iostream>#include<cstring>#include<algorithm>usingnamespacestd;intn,m,a,b,......
  • “现代汽车中国前瞻软件赛杯” 牛客周赛 Round 43 D、E
     那时候吃了饭后,剩下25分钟,我就把A-D都过了一遍,E不够时间。 D对于x~y这个长度为k的序列:对于1~k每个数,它出现的数目。从x~y,到x+1~y:如果一个数出现的数目从0->1,出现元素数目+1;如果一个数出现的数目从1->0,出现元素数目-1。记录所有出现元素数目=k的序列。太多人对了。......
  • “现代汽车中国前瞻软件赛杯” 牛客周赛 Round 43
    A小红平分糖果Code:#include<bits/stdc++.h>usingnamespacestd;#definedebug(x)cerr<<#x<<":"<<x<<'\n';intmain(){ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);intn;ci......