剪枝!剪枝!暴力加剪枝
查看原帖
剪枝!剪枝!暴力加剪枝
1390324
Mr_yang1楼主2024/10/20 16:07

先看:

#include<bits/stdc++.h>
using namespace std;
long long n,m,ans,arr[300005],index1;
string a,b;
int main(){
	cin>>n>>m>>a>>b;
	for(long long i=0;i<=m-n;i++){
		bool flag=1;
		for(long long j=i,k=0;j<i+n;j++,k++){
			if(a[k]=='*'||b[j]=='*'||a[k]==b[j])continue;
			if(a[k]!=b[j]){
				flag=0;break;
			}
		}
		if(flag){ans++,arr[++index1]=i;}
	}
	cout<<ans<<endl;
	for(long long i=1;i<=index1;i++)cout<<arr[i]+1<<' ';
}

这个暴力代码可以80!!!

我觉得。。如果在加上更多的剪枝,应该可以A!!!

求建议!!!

2024/10/20 16:07
加载中...