专栏文章

P9868 [NOIP2023] 词典

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

文章操作

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

当前评论
0 条
当前快照
1 份
快照标识符
@miqy568c
此快照首次捕获于
2025/12/04 12:39
3 个月前
此快照最后确认于
2025/12/04 12:39
3 个月前
查看原文
看题要没看懂就去推样例,想到有问题的地方就去推一下,别空想
40pts:
CPP
#include<bits/stdc++.h>
using namespace std;
int n,m,k[3005],k2[3005];
char s[3005];
int main(){
	memset(k,127,sizeof(k));
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++){
		scanf("%s",s);
		for(int j=0;j<m;j++){
			if(j==0){
				k[i]=k2[j]=s[j]-'a';
			}
			else{
				k[i]=min(k[i],s[j]-'a');
				k2[i]=max(k2[i],s[j]-'a');
			}
		}
	}
	bool flag=1;
	for(int i=1;i<=n;i++){
		flag=1;
		for(int j=1;j<=n;j++){
			if(i==j) continue;
			if(k[i]>=k2[j]){
				flag=0;
				cout<<0;
				break;	
			}
		}
		if(flag){
			cout<<1;
		}
	}	
	return 0;
}
错因:
CPP
k[i]=k2[j]=s[j]-'a';
k2[i]->k2[j]
100pts:
CPP
#include<bits/stdc++.h>
using namespace std;
int n,m,k[3005],k2[3005];
char s[3005];
int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++){
		scanf("%s",s);
		for(int j=0;j<m;j++){
			if(j==0){
				k[i]=k2[i]=s[j]-'a';
			}
			else{
				k[i]=min(k[i],s[j]-'a');
				k2[i]=max(k2[i],s[j]-'a');
			}
		}
	}
	bool flag=1;
	for(int i=1;i<=n;i++){
		flag=1;
		for(int j=1;j<=n;j++){
			if(i==j) continue;
			if(k[i]>=k2[j]){
				flag=0;
				cout<<0;
				break;	
			}
		}
		if(flag){
			cout<<1;
		}
	}	
	return 0;
}

评论

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

正在加载评论...