zoukankan      html  css  js  c++  java
  • CF 1215 B The Number of Products(思维题)

    链接:https://codeforces.com/contest/1215/problem/B

    You are given a sequence a1,a2,,ana1,a2,…,an consisting of nn non-zero integers (i.e. ai0ai≠0).

    You have to calculate two following values:

    1. the number of pairs of indices (l,r)(l,r) (lr)(l≤r) such that alal+1ar1aral⋅al+1…ar−1⋅ar is negative;
    2. the number of pairs of indices (l,r)(l,r) (lr)(l≤r) such that alal+1ar1aral⋅al+1…ar−1⋅ar is positive;
    Input

    The first line contains one integer n(1n2105)(1≤n≤2⋅105) — the number of elements in the sequence.

    The second line contains nn integers a1,a2,,ana1,a2,…,an (109ai109;ai0)(−109≤ai≤109;ai≠0) — the elements of the sequence.

    Output

    Print two integers — the number of subsegments with negative product and the number of subsegments with positive product, respectively.

    题意:求乘积为负数和正数的子段个数(没有0)

    题解:正数0,负数1,统计前缀和(就是求前缀和奇偶),再从头扫一遍,维护2个桶前缀和为奇数的个数和前缀和为偶数的个数。

    #include <bits/stdc++.h>
    using namespace std;
     
    const int maxn=2e5+5;
    int n;
    int a[maxn], sum[maxn], cnt[2];
    long long pos, neg;
     
    int main()
    {
        ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
        cin>>n;
        for(int i=1; i<=n; i++)
        {
            cin>>a[i];
            if(a[i]>0) a[i]=0;
            else a[i]=1;
        }
        for(int i=1; i<=n; i++)
            sum[i]=sum[i-1]+a[i];
        for(int i=1; i<=n; i++)
            sum[i]=sum[i]%2;
        cnt[0]++;                 //注意cnt0初始化为1,表示区间长度为1的那个
        for(int i=1; i<=n; i++)
        {
            if(sum[i]){
                pos+=cnt[1];
                neg+=cnt[0];
            }
            else{
                pos+=cnt[0];
                neg+=cnt[1];
            }
            cnt[sum[i]]++;
        }
        cout<<neg<<" "<<pos;
        return 0;
    }
    View Code
  • 相关阅读:
    计算机网络七:中继器、集线器、交换机、路由器、网桥和网关
    vue 简易计算器
    express mongodb 连接池
    vue过度动画
    Webpack 学习笔记(0)
    git 学习笔记
    MySQL 权限笔记
    java gui笔记
    3d tranform css3
    java 多线程笔记
  • 原文地址:https://www.cnblogs.com/Yokel062/p/11613839.html
Copyright © 2011-2022 走看看