求助!第九个点TLE
查看原帖
求助!第九个点TLE
1000187
nghd666666楼主2024/5/4 21:54
#include<bits/stdc++.h>
using namespace std;
int main(){
	ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
	int t;
	cin>>t;
	while(t--){
		vector<int> q1[15];
		long long a[15005],mp[15][15005]={},ans[15]={};
		//q1[m][n]表示第n个m的下标	mp[i][j]表示下标为j时有几个i。 
		long long s,e,n,m,sumn=0;
	    cin>>n;
	    for(long long i=1;i<=n;i++){
	        cin>>a[i];
			ans[a[i]]+=1;
			q1[a[i]].push_back(i);
			for(long long j=1;j<=13;j++){
				mp[j][i]=ans[j];
			}
	    }
	    
	    cin>>m;
	    for(long long i=1;i<=m;i++){
	    	long long sumn=0;
	    	cin>>s>>e;
	    	
	    	for(long long j=s;j<=e;j++){
	    		long long ta=a[j];
	    		if(mp[ta][j]==mp[ta][e]){
	    			sumn++;
				}else{
					j=q1[ta][mp[ta][j]];
				}
			}
			cout<<sumn<<"\n";
		}
	}
    
    return 0;
}
2024/5/4 21:54
加载中...