2 条题解

  • 0
    @ 2026-3-16 21:00:13
    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll ;
    ll T=1;const ll N=1e5+5;
    ll a[N];ll n;ll ans;ll x,y;string s;
    map<char,ll>vis;
    bool check(ll l,ll r){
    	for(ll i=l;i<=r;++i){
    		if(vis[s[i]]>x)return 0;
    	}return 1;
    }
    ll cnt;
    void solve(){
    	
    	cin>>s;n=s.size();
    	s=" "+s;
    	cin >>x;
    	ll l=1;ll  r=1;
    	while(r<=n){
    		vis[s[r]]++;
    		while(vis[s[r]]>x){
    			vis[s[l]]--;
    			l++;
    		}
    		cnt+=r-l+1;
    		r++;
    		
    		
    	}
    	cout<<cnt;
    	
    
    }
    int main(){
    	while(T--)solve();
    	return 0;
    }
    
    • 0
      @ 2026-3-12 14:30:37
      import sys
      input = lambda:sys.stdin.readline().strip()
      
      s = input()
      k = int(input())
      n = len(s)
      left = 0
      from collections import defaultdict
      count = defaultdict(int)
      res = 0
          
      for right in range(n):
          count[s[right]] += 1
          while count[s[right]] > k:
              count[s[left]] -= 1
              left += 1   
          res += (right - left + 1)
      print(res)
      
      • 1

      信息

      ID
      679
      时间
      1000ms
      内存
      256MiB
      难度
      4
      标签
      递交数
      59
      已通过
      25
      上传者