C. Alternating Subsequence1200 / 贪心 压缩

Posted 幽殇默

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C. Alternating Subsequence1200 / 贪心 压缩相关的知识,希望对你有一定的参考价值。


https://codeforces.com/problemset/problem/1343/C
就是压缩,将一连串的负数保存一个最大的,将一连串的正数存一个最大的。

#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;
const int N=1e5*2+10;
LL a[N],t,n;
int main(void)
{
	cin>>t;
	while(t--)
	{
		cin>>n;
		for(int i=0;i<n;i++) cin>>a[i];
		vector<int>A;
		LL temp=a[0];
		for(int i=0;i<n;i++)
		{
		    temp=max(temp,a[i]);
			if( (i+1==n) ||(a[i]*a[i+1]<0))
			{
				A.push_back(temp);
				temp=a[i+1];
			}
		}
		LL sum=0;
		for(int i=0;i<A.size();i++)  sum+=A[i];
		cout<<sum<<endl;
	}
	return 0;
}

以上是关于C. Alternating Subsequence1200 / 贪心 压缩的主要内容,如果未能解决你的问题,请参考以下文章

693. Binary Number with Alternating Bits

693. Binary Number with Alternating Bits

693. Binary Number with Alternating Bits

CodeForces - 344D Alternating Current (模拟题)

Codeforces 963 A. Alternating Sum (逆元)

Codeforces 963 A. Alternating Sum (逆元)