5 条题解

  • 1
    @ 2025-11-16 23:39:14
    #include <bits/stdc++.h>
    using namespace std;
    #define int long long
    #define endl '\n'
    #define EPS 1e-8
    #define fi first
    #define se second
    #define lowbit(x) x & (-x)
    const int inf = 0x3f3f3f3f;
    typedef pair<int, int> pii;
    const int N = 2E5 + 10;
    int arr[N];
    void solve()
    {
        int n, l, r;
        cin >> n >> l >> r;
        int vec[n+1]={0};
        for (int i = 1; i <= n; i++)
        {
            cin >> vec[i];
        }
        int ll = 0, rr = 0;
        int ans = 0, sum = 0;
        while (ll <= n && rr <= n)
        {
            if (sum <= r && sum >= l)
            {
    
                ans++;
                ll = rr + 1;
                sum = 0;
            }
            else if (sum < l)
            {
                rr++;
                sum += vec[rr];
            }
            else if (sum > r)
            {
    
                sum -= vec[ll];
                ll++;
            }
        }
        cout << ans << endl;
    }
    signed main()
    {
        ios::sync_with_stdio(false);
        cin.tie(0);
        cout.tie(0);
        int t = 1;
        cin >> t;
        while (t--)
        {
            solve();
        }
        return 0;
    }
    
    • @ 2025-11-16 23:39:57

      双指针模拟

我叶梓楣也要成为duck大魔王!!!(2)

信息

ID
1206
时间
1000ms
内存
256MiB
难度
8
标签
(无)
递交数
167
已通过
20
上传者