2021.5.26 3574. 乘积数量
Posted 幽殇默
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021.5.26 3574. 乘积数量相关的知识,希望对你有一定的参考价值。
只需要记录每一个数的正负号即可,求每一个前缀的正号的个数。
#include<cstdio>
#include<iostream>
using namespace std;
typedef long long int LL;
const int N=1e5*2+10;
LL f[N],s[N];// f该位是正,负 s正的个数的前缀和
int main(void)
{
LL n; cin>>n;
f[0]=1;
for(int i=1;i<=n;i++)
{
int x; cin>>x;
if(x<0) f[i]=-f[i-1];
else f[i]=f[i-1];
}
s[0]=1;//初始化 我觉得就是处理自身的情况
for(int i=1;i<=n;i++)
{
if(f[i]>0) s[i]=s[i-1]+1;
else s[i]=s[i-1];
}
LL temp=0;
LL ans=n*(n-1)/2+n;
for(int i=1;i<=n;i++)
{
if(f[i]>0) temp+=s[i-1];
else temp+=i-s[i-1];
}
cout<<ans-temp<<" "<<temp<<endl;
return 0;
}
#include<cstdio>
#include<iostream>
using namespace std;
typedef long long int LL;
int main(void)
{
int n; cin>>n;
LL ans1=0,ans2=0;
LL s=1,l=0,r=1;
while (n -- )
{
int x; cin>>x;
if(x<0) s=-s;
if(s>0) ans2+=r,ans1+=l,r++;
else ans2+=l,ans1+=r,l++;
}
cout<<ans1<<" "<<ans2<<endl;
return 0;
}
以上是关于2021.5.26 3574. 乘积数量的主要内容,如果未能解决你的问题,请参考以下文章
什么是在 C++ 中获取总内核数量的跨平台代码片段? [复制]
为啥尽管源代码没有变化,但从一个系统到另一个系统的片段数量却有很大差异?
Cg入门20:Fragment shader - 片段级模型动态变色(实现汽车动态换漆)