noip模拟题《序》sort
【问题背景】 zhx 给他的妹子们排序。 【问题描述】 zhx有N个妹子,他对第i个妹子的好感度为a i , 且所有a i 两两不相等。现在N个妹子随意站成一 排,他要将她们根据好感度从小到大排序。 他使用的是冒泡排序算法。如果排序过程中 好感度为a i 的妹子和好感度为a j 的妹子发生了交换, 那么她们之间会发生一场口角。 现在 zhx 想知道, 给定妹子的初始排列, 在排序完成后, 最多存在多少个妹子, 她们任意两 人之间没发生过口角。 正式地, 考虑对数组ai进行冒泡排序, 如果ai和aj在排序过程中发生交换,那么在两个元素之 间连一条边。你需要求出,排序结束后,最多存在多少个元素,其中任意两个元素之间不存在连边。 【输入格式】 第一行两个整数 N, 表示妹子数量。 接下来一行 N 个整数ai,表示初始第 i 个妹子的好感度。 【输出格式】 一行一个整数, 表示最多满足要求的妹子的个数。 【样例输入】 3 3 1 2 【样例输出】 2 【样例解释】 {1, 2}。 【数据规模与约定】 对于30%的数据, 1 ≤n≤ 16。 对于70%的数据, 1 ≤n≤ 5000。 对于100%的数据, 1 ≤n≤ 100000, 0 ≤ai<n。 (当时看到实在不会做啊,还是QTY_YTQ神说这就是求最长上升子序列长度,好劲啊) 就是i和j两个妹子不交换,当且仅当ai<aj