Noip T1玄学挂分!
  • 板块灌水区
  • 楼主whileAK
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/11/19 12:51
  • 上次更新2023/11/19 15:07:02
查看原帖
Noip T1玄学挂分!
817925
whileAK楼主2023/11/19 12:51

有没有巨佬帮忙看看,熨斗上70,洛谷80

T1都切不了,只能说太菜了QAQ

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
void read(int &p){
	char z=getchar();int s=1;p=0;
	while(z<'0'||z>'9'){if(z=='-')s=-1;z=getchar();}
	while(z>='0'&&z<='9'){p=(p<<1)+(p<<3)+z-'0';z=getchar();}
	p*=s;
}
int n,m,c[3003][26]={},v=1;
string s[3002],g[3002];
int main(){
	freopen("dict.in","r",stdin);
	freopen("dict.out","w",stdout);
	read(n);read(m);
	for(register int i(1);i<=n;++i){
		cin>>s[i];
		for(register int j(0);j<m;++j)++c[i][s[i][j]-'a'];
		for(register int j(25);~j;--j)for(int k(1);k<=c[i][j];++k)g[i]+=char('a'+j);
	}
	if(n==1){
		printf("1");
		return 0;
	}
	for(register int i(2);i<=n;++i){
		if(g[v]>g[i])v=i;//cout<<g[i]<<endl;
	}//cout<<v;
	int cnt=1;
	string t;
	for(register int i(1);i<=n;++i){
		if(i!=v){
			cnt=1;bool l=false;
			for(register int j(0);j<26;++j){
				for(register int k(1);k<=c[i][j];++k){
					if(g[v][cnt]-'a'<j){
						break;
					}
					else if(g[v][cnt]-'a'>j){
						l=true;break;
					}
					++cnt;
				}
			}
			if(l)printf("1");
			else printf("0");
		}
		else{
			bool l=true;
			for(register int j(0);j<26;++j){
				for(register int k(1);k<=c[i][j];++k){
					t+=(char)('a'+j);
				}
			}
			for(register int j(1);j<=n;++j){
				string h;
				if(j!=i){
					if(t>=g[j]){
						l=false;break;
					}
				}
			}
			l?printf("1"):printf("0");
		}
	}
	return 0;
}
2023/11/19 12:51
加载中...