建议加大时限
查看原帖
建议加大时限
1126347
lzx123123楼主2024/9/24 12:31
#include<bits/stdc++.h>
using namespace std;
int n,a[15010],q,l,r,dp[15010],k[15],ans;
int read(){
	int ans=0;char c=getchar();
	while(c<'0'||c>'9')c=getchar();
	while(c>='0'&&c<='9')ans=ans*10+c-'0',c=getchar();
	return ans; 
}int main(){
	int T=read();
	while(T--){
		n=read();for(int i=1;i<=n;i++)a[i]=read();
		for(int i=1;i<14;i++)k[i]=n+1;
		for(int i=n;i>0;i--){dp[i]=k[a[i]];k[a[i]]=i;}
		q=read();
		while(q--){
			l=read(),r=read();ans=0;
			while(l<=r){
				if(dp[l]>r)ans++,l++;
				else l=dp[l]+1;
			}printf("%d\n",ans);
		}
	}
	return 0;
}

这样的思路的代码可以卡掉 这个的复杂度应该是O(13Tn)的,应该是可以过的 但实际:测试出来是#11TLE 建议加大时限,改到1.2s 这样其他不应该对的代码也不会对

2024/9/24 12:31
加载中...