不是VIP会员,不能显示答案

题目解答

题目:
#include<iostream>

using namespace std;



int main() {

int n, x; cin >> n>>x;

int a=0, b=0,c=0, na, nb, nc, ans=0;

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

int now;cin>>now;

na = max(a+now, 0);

nb = max(max(a+now*x, b+now*x), 0);

nc = max(max(c+now, b+now), 0);

a= na,b= nb,c=nc;

ans=max(max(ans,a), max(b,c));

}

cout <<ans;

}


假设输入的n、x和now都是绝对值在1000内的整数,完成下面的判断题和单选题:



判断题

1) 一共需要输入n+3个数字。( )

2) 这是一种朴素的未使用任何优化的动态规划算法。( )

3) a表示前个数的最大连续子序列和。( )

4) 在给定的输入范围下,使用int有可能会得到错误答案。( )


选择题

5) 以下说法可能是此算法对应的题目的是( )

6) 以下输入数据得到的结果最大的是( )
考点:
分析:
解答:
评论:
老师: