2 条题解

  • 2
    #include<bits/stdc++.h>
    using  namespace std;
    typedef long long ll;
    const ll N=1005;
    ll n,i,j,a[N],x,y,q,t;
    int main()
    {
        cin>>n>>q;
        a[0]=0;
        for(i=1;i<=n;i++) 
        {
            scanf("%ld",&t);
            a[i]=j+(t+1)%2;//黑1,白0,这里反了一下,以便后面计算。
            j=max(a[i],a[i-1]);//找到最近黑珠子个数值
        }
        for(i=1;i<=q;i++)
        {
            scanf("%ld%ld",&x,&y);
            printf("%ld\n",a[y]-a[x-1]);//a[i]表示第i个珠子时黑珠子的个数
        }
        return 0;
    }
    
    
    

    动规永远滴神

  • 0
    @ 2024-08-21 12:31:43
    #include<iostream>
    using namespace std;
    bool c[1001];
    int main(){
        ios::sync_with_stdio(false);
        int n, q, a, b, sum;
        cin >> n >> q;
        for(int i = 1; i <= n; i++)cin >> c[i];
        for(int i = 1; i <= q; i++){
            sum = 0;
            cin >> a >> b;
            for(int j = a; j <= b; j++){
                if(!c[j])sum++;
            }
            cout << sum << endl;
        }
        return 0;
    }
    
  • 1

信息

ID
1216
难度
3
分类
(无)
标签
递交数
37
已通过
19
通过率
51%
上传者