专栏文章

debug

个人记录参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mipnebdq
此快照首次捕获于
2025/12/03 14:50
3 个月前
此快照最后确认于
2025/12/03 14:50
3 个月前
查看原文
CPP
#include<bits/stdc++.h>
using namespace std;
const int MAXN=5e5+10;
int t;
int n;
string s[11];
string str;
bool f;
pair<int,int> v[MAXN];
bool inc[MAXN];
int cnt;
bool cmp(pair<int,int> a,pair<int,int> b){
	return a.second<b.second;
}
int main(){
//	freopen("input.in","r",stdin);
//	freopen("user_output.out","w",stdout);
	freopen("c.in","r",stdin);
	freopen("c.out","w",stdout);
	cin>>t;
	for(int i=1;i<=t;++i){
		memset(inc,0,sizeof(inc));
		cnt=0;
		memset(v,0,sizeof(v));
		cin>>n;
		for(int j=1;j<=n;++j){
			cin>>s[j];
		}
		cin>>str;
		for(int j=0;j<str.size();++j){
			for(int k=1;k<=n;++k){
				f=true;
				for(int l=0;l<s[k].size();++l){
					if(str[j+l]!=s[k][l]){
						f=false;
						break;
					}
				}
				if(f){
					v[++cnt].first=j;
					v[cnt].second=s[k].size()+j-1;
//					cout<<s[k]<<' '<<v[cnt].first<<' '<<v[cnt].second<<'\n';
				}
			}
		}
//		cout<<'\n'<<"-----------"<<'\n';
		sort(v+1,v+cnt+1,cmp);
		for(int j=1;j<=cnt;++j){
			if(j+1<=cnt){
				if(v[j+1].first<=v[j].first){
					for(int k=j;k<=n;++k){
						swap(v[k+1],v[k+2]);
					}
					--cnt;
				}
			}
//			cout<<v[i].first<<' '<<v[i].second<<'\n';
		}
		for(int j=1;j<=cnt;++j){
			str[v[j].second]='*';
			f=true;
			for(int k=1;k<=cnt;++k){
				if((v[k].first<=v[j].second&&v[k].second>=v[j].second)||inc[k]){
					inc[k]=true;
				}else{
					f=false;
				}
			}
			if(f){
				cout<<str<<'\n';
				break;
			}
		}
	}
	return 0;
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...