ansa

B. The Number of Products(Codeforces Round #585 (Div. 2))

旧街凉风 提交于 2019-11-30 16:01:56
本题链接: https://codeforces.com/contest/1215/problem/B 题意:给你n长度的数组 然后让你计算乘积为 负的 和 正的 的子串的个数 简单dp推导题 一个 a 一个 b 维护正数和负数的字串个数 开始为正时 a++ 如果遇到负号变号 则原先可以组成正数的子串开始组成负数 所以 swap(a,b) 然后让负数的b++ 最后再统计 #include <iostream> #include<algorithm> #include<math.h> #include<string.h> using namespace std; int main() { int a=0,b=0,ansa=0,ansb=0; int n,x; cin>>n; for(int i=0;i<n;i++) { cin>>x; if(x>0) { a++; } else { swap(a,b); b++; } ansa+=a; ansb+=b; } cout<<ansa<<" "<<ansb<<endl; return 0; } 来源: https://www.cnblogs.com/AAAzhuo/p/11603049.html