第一个测试点AC,剩下的全都TLE,求调。
查看原帖
第一个测试点AC,剩下的全都TLE,求调。
1122732
yuguanchen2022楼主2024/2/23 15:38
#include<bits/stdc++.h>
using namespace std;

int main(){
	int n,i;
	string s;
	cin>>n>>s;
	for(i=1;i<=n;i++){
		string a="";
		int z=i;
		while(z!=0){
			a=char(z%2+'0')+a;
			z/=2;
		}
		if(s.size()<=a.size()*2) break;
		if(s.find(a)!=-1){
			int pos=s.find(a);
			printf("%d ",pos+1);
			string b="";int zz=0;
			for(int j=pos;j<pos+a.size();j++)
			  b+=s[j];
			for(int j=0;j<s.size();j++){
				string c="";
				for(int k=j;k<j+b.size();k++)
				  c+=s[k];
				if(c==b)
				  zz++;
			}
			printf("%d\n",zz);
			a="";
			for(int j=0;j<pos;j++) a+=s[j];
			for(int j=pos+b.size();j<s.size();j++) a+=s[j];
			s=a;
		}
		else printf("-1 0\n");
	}
	for(i=i;i<=n;i++) printf("-1 0\n");
	return 0;
}

2024/2/23 15:38
加载中...