HDU 6635 Nonsense Time【暴力LIS+记录路径】

阅读: 评论:0

HDU 6635 Nonsense Time【暴力LIS+记录路径】

HDU 6635 Nonsense Time【暴力LIS+记录路径】

题意:给你一个n的全排列,每次选一个元素到集合S,然后每次求出来集合S的LIS。

思路:反过来考虑,相当于每次删除一个元素,然后求LIS。由于保证数据随机,所以可以考虑暴力找,如果当前删这个元素不是LIS的路径,那么删除这个元素对答案无影响,否则就再暴力求LIS。另外学到了nlogn求路径,之前一直以为不可以求。

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define ls rt << 1
#define rs rt << 1 | 1
#define lson l, mid, rt << 1
#define rson mid + 1, r, rt << 1|1
const int maxn = 5e4 + 10;
const int inf = 0x3f3f3f3f;
int a[maxn], b[maxn], pos[maxn], pre[maxn], p[maxn], ans[maxn];
bool vis[maxn];
int len;void LIS(int n)
{memset(b, 0x3f, (n + 1) * sizeof(int));memset(vis, false, (n + 1) * sizeof(bool));pos[0] = 0;for(int i = 1; i <= n; ++i){if(a[i] == -1) continue;int id = lower_bound(b + 1, b + n + 1, a[i]) - b;b[id] = a[

本文发布于:2024-01-31 16:20:20,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170668922329814.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:路径   暴力   HDU   Nonsense   LIS
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23