社区讨论

P9868 [NOIP2023] 词典暴力求优化

学术版参与者 1已保存回复 0

讨论操作

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

当前回复
0 条
当前快照
1 份
快照标识符
@lzqzjp9e
此快照首次捕获于
2024/08/12 20:44
2 年前
此快照最后确认于
2024/08/12 21:36
2 年前
查看原帖
因为题目总版没人看,所以搬到这里来了......
以下是芶蒻代码:
CPP
#include<bits/stdc++.h>
using namespace std;
struct double_string
{
	string s,s_up,s_down;
};
bool cmp_up(char a,char b)
{
	if(a==b)return false;
	return a<b;
}
bool cmp_down(char a,char b)
{
	if(a==b)return false;
	return a>b;
}
string sort_string(string s,string flag)
{
	int size=s.size();
	if(flag=="up")
		sort(s.begin(),s.end(),cmp_up);
	else if(flag=="down")
		sort(s.begin(),s.end(),cmp_down);
	else cout<<"sortERR";
	return s;
}
bool compare(string a,string b)
{
	if(a==b)return false;
	for(int i=0;i<a.size();i++)
		if(a[i]!=b[i])return a[i]<b[i];
	cout<<"compareERR";
	return false;
}
int main()
{
	double_string str[3005];
	int n,m;
	cin>>n>>m;
	if(n==1)
	{
		cout<<1;
		return 0;
	}
	for(int i=1;i<=n;i++)
	{
		cin>>str[i].s;
		str[i].s_up=sort_string(str[i].s,"up");
		str[i].s_down=sort_string(str[i].s,"down");
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			if(j==n)cout<<1;
			if(i==j)continue;
			//if(i==15)cout<<i<<" "<<j<<" "<<str[i].s_up<<endl<<str[j].s_down<<endl<<compare(str[i].s_up,str[i].s_down)<<endl<<endl;
			if(!compare(str[i].s_up,str[j].s_down))
			{
				cout<<0;
				break;	
			}
			
		}
	}
//	cout<<compare("nnnoott","nnbaaaa");
	return 0;
}
%@dalao

回复

0 条回复,欢迎继续交流。

正在加载回复...