社区讨论
求助!!!
学术版参与者 3已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @minww9yg
- 此快照首次捕获于
- 2025/12/02 09:41 3 个月前
- 此快照最后确认于
- 2025/12/02 18:12 3 个月前
救救我吧,实在想不出正解
题目:
T547748 简单问题1(sum)
题目描述
给定序列 ,序列的一个子段 为序列中连续的一段 ,子段的和即为 。
现在请你求出序列 中最大的为奇数的子段和。
输入格式
第一行包含1个整数 。
第二行包含 个整数 。
输出格式
输出1个整数,代表答案;若答案不存在,输出
no solution。输入输出样例 #1
输入 #1
CPP3
3 2 1
输出 #1
CPP5
输入输出样例 #2
输入 #2
CPP4
2 2 2 2
输出 #2
CPPno solution
输入输出样例 #3
输入 #3
CPP5
-3 12 -1 -7 9
输出 #3
CPP13
说明/提示
对于30%的数据:
对于50%的数据:
对于70%的数据:
对于100%的数据:
code:
CPP#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,a[1000005],ans,s[1000005];
int main(){
ans = -1e18;
cin >> n;
for(int i = 1;i <= n;i++){
cin >> a[i];
}
for(int i = 1;i <= n;i++) s[i] = s[i - 1] + a[i];
for(int l = 1;l <= n;l++){
for(int r = l;r <= n;r++){
if(s[r] - s[l - 1] & 1) ans = max(ans,s[r] - s[l - 1]);
}
}
if(ans != -1e18)cout << ans;
else cout << "no solution";
return 0;
}
悬二关
回复
共 4 条回复,欢迎继续交流。
正在加载回复...