社区讨论
0分,样例能过,求调
B4069[GESP202412 四级] 字符排序参与者 2已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @mhj8yrir
- 此快照首次捕获于
- 2025/11/03 22:40 4 个月前
- 此快照最后确认于
- 2025/11/03 22:40 4 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
string s[105];
int main(){
int t;
cin>>t;
for(int i=1;i<=t;i++){
int n;
cin>>n;
string wh;
wh=' '+wh;
/*我加空格是把整个字符串往后挪一个,循环好写(自认为)*/
for(int j=1;j<=n;j++){
cin>>s[j];
wh=wh+s[j];/*拼成整个字符串*/
}
sort(wh.begin()+1,wh.end());
for(int j=1;j<=n;j++){
for(int k=1;k<=wh.size()-s[j].size()+1;k++)
/*1<=k<=wh的末s[j]的长的位置
eg:aabbc̥c 其s[3]="cc"(.size=2)循环到终止到加着重号的位(第一个c)
*/
{
string tmp=wh.substr(k,s[j].size());
if(s[j]==tmp){
wh.erase(k,s[j].size());
/*找到一个删一个*/
break;
}
}
}
if(wh.size()-1==0){ //减一弥补空格的占位
cout<<1<<endl;
}
else cout<<0<<endl;
}
return 0;
}
提交记录https://www.luogu.com.cn/record/237019729
应该这方法很麻烦,但实在想不出什么好法子了,也幸亏这题n,k都比较小,再大点直接tle
这不明天考四级吗(25.9.27),试机环境满分,luogu这就全错,奇了
回复
共 4 条回复,欢迎继续交流。
正在加载回复...