离散化求助!!!!!!!!!!!!!!!
查看原帖
离散化求助!!!!!!!!!!!!!!!
524906
刘辰雨楼主2021/11/5 19:13

T三个 , 其余WA , 求助!!!

#include<bits/stdc++.h>
using namespace std;
int n , num[100005];
struct hh
{
	int shu , on;
};
hh a[100005];
int x;
int main()
{
	scanf("%d" , &n);
	for(int i = 1 ; i<= n ; i++ )
	{
		scanf("%d" , &x);
		num[i] = x;
	}
	for(int i = 1 ; i<= n ; i++ )
	{
		scanf("%d" , &a[i].shu);
		a[i].shu = num[a[i].shu];//离散化
	}
	for(int i = n ; i>= 1 ; i-- )
	{
		int max = 0;
		for(int j = i+1 ; j<= n ; j++ )
		{
			if(a[j].shu > a[i].shu)//比大小
			{
				if(a[j].on > max)max = a[j].on;
			}
		}
		a[i].on = max+1;//状态转移
	}//求最长上升子序列
	printf("%d" , a[1].on);
	return 0;
} 
2021/11/5 19:13
加载中...