社区讨论
0pts求条
P9868[NOIP2023] 词典参与者 4已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @m6vqivzb
- 此快照首次捕获于
- 2025/02/08 13:08 去年
- 此快照最后确认于
- 2025/11/04 09:45 4 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,m;
string lis[3005],tr[3005];
bool first_minner_second(string a,string b){
for(int i=0;i<m;i++){
if(a[i]<b[i])return true;
if(a[i]>b[i])return false;
}
}
signed main(){
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>lis[i];
for(int bit=1;bit<=n;bit++){
for(int i=1;i<=n;i++)tr[i]=lis[i]; // copy string
for(int i=1;i<n;i++){ // every string ( no test string )
if(i==bit)continue;
int min_char_bit;
char min_char='z';
for(int j=0;j<m;j++){ // find the min char in every string
if(tr[i][j]<min_char){
min_char=tr[i][j];
min_char_bit=j;
}
}
swap(tr[i][0],tr[i][min_char_bit]);
}
string min_str="";
min_str+='z'*m;
int min_str_bit;
for(int i=1;i<=n;i++){
if(first_minner_second(tr[i],min_str)){
min_str=tr[i];
min_str_bit=i;
}
}
if(min_str_bit==bit)cout<<1;
else cout<<0;
}
return 0;
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...