听说灌水区dalao多,求助玄关
  • 板块灌水区
  • 楼主luxiaomao
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/8/31 15:55
  • 上次更新2023/11/3 00:11:43
查看原帖
听说灌水区dalao多,求助玄关
1037502
luxiaomao楼主2023/8/31 15:55

P8736

字符串的最长上升子序列,但是我WA了九个点,只剩10分,求助

这是我的代码

#include<bits/stdc++.h>
using namespace std;

vector<string> line;
string now,str,ans[1000005];

void init()
{
	cin>>str;
	now += str[0];
	for(int i = 1;i < str.size();i++)
	{
		if('A'<=str[i]&&str[i]<='Z')
		{
			line.push_back(now);
			now.clear();
		}
		now += str[i];
	}
	line.push_back(now);
}

int binary(int l,int r,string k)
{
	while(l<r)
	{
		int mid = l+r>>1;
		if(ans[mid]>=k)
			r = mid;
		else
			l = mid+1;
	}
	return l;
}

int main()
{
	init();
	
	ans[0] = line[0];
	int m = 1;
	for(int i = 1;i < (int)line.size();i++)
	{
		if(line[i]>ans[m-1])
			ans[m++] = line[i];
		else
			ans[binary(0,m-1,line[i])] = line[i];
	}
	
	for(int i = 0;i < m;i++)cout<<ans[i];
}

我觉得我可能错得很明显,但我虾(求助dalao QAQ)

2023/8/31 15:55
加载中...