卡常?
查看原帖
卡常?
530797
code_hyx楼主2024/9/6 22:03

不明白为什么只有90分,TLE1个,这可是橙题啊

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m;
string s[3005],ss[3005],s1[3005],s2[3005];
bool cmp(char ch1,char ch2)
{
	return ch1>ch2;
}
string ssort(string t,int tp)
{
	string tt="";
	char a[3005];
	for(int i=0;i<m;i++)
	{
		a[i]=t[i];
	}
	if(tp==1)sort(a,a+m);//最小字典序 
	if(tp==2)sort(a,a+m,cmp);//最大字典序 
	for(int i=0;i<m;i++)
	{
		tt+=a[i];
	}
	return tt;
}
signed main()
{
	//freopen("dict4.in","r",stdin);
	//freopen("dict4.out","w",stdout);
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>n>>m;
	for(int i=1;i<=n;i++)cin>>s[i];
	for(int i=1;i<=n;i++)
	{
		s1[i]=ssort(s[i],1);
		s2[i]=ssort(s[i],2);
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)ss[j]=s[j];
		if(n==1)
		{
			cout<<1;
			continue;
		}
		else
		{
			for(int j=1;j<=n;j++)
			{
				if(i==j)ss[j]=s1[j];
				else ss[j]=s2[j];
			}
			bool flag=true;
			for(int j=1;j<=n;j++)
			{
				//cout<<ss[j]<<" ";
				if(i!=j&&ss[i]>=ss[j])
				{
					flag=false;
					break;
				}
			}
			cout<<flag;
		}
	}
	return 0;
}
2024/9/6 22:03
加载中...