题目链接

题意

A,BA,BA,B两个数组,B[i]表示A中下表为B[i]B[i]B[i]的数字当前可用,求B[i]B[i]B[i]对应的AAA中的LISLISLIS,其中AAA中是[1,n][1,n][1,n]的全排列(random_sufflerandom\_sufflerandom_suffle)

思路

  • 结论:题解说随机生成,LISLISLIS的期望长度n\sqrt{n}n​,删除元素在LISLISLIS中的概率1n\frac{1}{\sqrt{n}}n​1​,所以总的复杂度O(nnlogn)O(n\sqrt{n}logn)O(nn​logn)
  • 倒着处理,判断每次删除的数字在不在当前LISLISLIS中,在就重新求LISLISLIS
  • 这个题还需要找出LISLISLIS的路径,这里有个板子
#include <bits/stdc++.h>
const int maxn = 5e4 + 5;
using namespace std;
int a[maxn], b[maxn], c[maxn], d[maxn];
int vis[maxn], used[maxn], path[maxn], n;
int solve() {int len = 0;for (int i = 1; i <= n; ++i) {if (vis[a[i]] == -1) continue;int it = lower_bound(d, d + len, a[i]) - d;if (it == len) {d[len++] = a[i];path[i] = len;}else {d[it] = a[i];path[i] = it + 1;}}fill(used, used+maxn, 0);int tmp = len;for (int i = n; i >= 1; --i) {if (vis[a[i]] == -1) continue;if (path[i] == tmp) used[a[i]] = 1, tmp--;}return len;
}
int main() {ios::sync_with_stdio(false);cin.tie(0), cout.tie(0);int T;scanf("%d", &T);while (T--) {scanf("%d", &n);fill(vis, vis+n+1, 0);for (int i = 1; i <= n; ++i) scanf("%d", &a[i]);for (int i = 1; i <= n; ++i) scanf("%d", &b[i]);c[n] = solve();for (int i = n-1; i >= 1; --i) {vis[a[b[i+1]]] = -1;if (used[a[b[i+1]]] == 0) c[i] = c[i+1];else c[i] = solve();}for (int i = 1; i <= n; ++i) {if (i > 1) printf(" ");printf("%d", c[i]);}puts("");}return 0;
}

HDU - 6635 Nonsense Time (暴力LIS)相关推荐

  1. hdu 4587 TWO NODES 暴力枚举+tarjan

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4587 题意是拿掉两个点 求最多可以把整个图分成几个联通块 注意到有一个模板是可以通过找割点来快速求出 ...

  2. 【HDU 4352】 XHXJ's LIS (数位DP+状态压缩+LIS)

    XHXJ's LIS Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  3. HDU 1257 - 最少拦截系统 ( LIS / 贪心 )

    题目 现在有一种拦截系统,第一发拦截可以是任意高度,但是之后的拦截高度不能比上次高.为了拦截下所有的炮弹,最少需要准备几套拦截系统? 思路 可能是语文没学好吧,一开始被题意卡了一下.(而且题目连数据范 ...

  4. HDU 4352 XHXJ#39;s LIS(数位dpamp;状态压缩)

    题目链接:[kuangbin带你飞]专题十五 数位DP B - XHXJ's LIS 题意 给定区间.求出有多少个数满足最长上升子序列(将数看作字符串)的长度为k. 思路 一个数的上升子序列最大长度为 ...

  5. HDU 4831 Scenic Popularity 暴力模拟

    Scenic Popularity Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  6. HDU 5908 Abelian Period 暴力

    Abelian Period 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5908 Description Let S be a number st ...

  7. hdu 4775 Infinite Go(暴力)

    题目链接:hdu 4775 Infinite Go 题目大意:两个人下围棋,总共走了n步.黑棋和白棋交替走,假设一片棋的上下左右被封死,那么该片棋子就会被吃掉,问说最后黑白棋各剩多少个. 解题思路:比 ...

  8. The Little Girl who Picks Mushrooms HDU - 4422 (枚举暴力)

    题目描述:5个包,已经有n个包里装了东西,还要继续往剩下的包里装东西(想装多少装多少).返程要经过两个过程,一是要交出3个东西数量之和恰好为1024整数倍的包:二是剩下两个包的东西每次都会被偷1024 ...

  9. hdu 4956 Poor Hanamichi(暴力)

    题目链接:hdu 4956 Poor Hanamichi 题目大意:Hanamichi要解决一个问题,即对给定区间l,r,求有多少个数的奇数位和比偶数位和大3,然后Hanamichi推出一个公式(r ...

最新文章

  1. android使用C/C++调用SO库
  2. 永磁同步电机试验系统的设计
  3. Codeforces 724 C. Ray Tracing
  4. Pandas: 使用read_excel、describe、loc方法求极差、变异系数与四分位数间距
  5. 雷军微博正式“确认”:Redmi Note 9 5G高配版处理器就是它
  6. HCIE-RS-TAC-01-AR29的loopback0无法访问AR28的loopback
  7. [转载] 中华典故故事(孙刚)——01 天要下雨_娘要嫁人
  8. 【ML小结2】信息论
  9. 读书笔记-《细说PHP》
  10. 手提无法使用Ghost方法安装win7系统,出现一直显示DOS工具箱和硬盘无效情况的解决
  11. CPU T9500-p9500-T9400-T9300-p8700各种小黑主流处理器对比分析
  12. [c++] 使用 raylib + ODE(open dynamics engine) 制作一个简易牛顿摆
  13. electron 自定义标题栏_如何在Electron Framework中创建自定义标题栏(灵感来自Visual Studio Code标题栏)...
  14. F-Measure MCC ROC Area PRC Area_2021国考报名入口:http://zw.offcn.com/gj/?area=gdamp;scode=ljx19564...
  15. 小程序设置渐变色背景
  16. http的幂等性及幂等性
  17. ML之PDP:机器学习可解释性之部分依赖图(Partial Dependence Plots)之每个特征如何影响您的预测?
  18. 【移动安全高级篇】————1、Android沙盘原理与实现
  19. hexo博客执行hexo命令后出现HEXO COMMAND NOT FOUND错误怎么办?
  20. 终端安全管理是什么?终端安全和网络安全有什么差别...

热门文章

  1. 剑指offer55 字符流中第一个不重复的字符(最典型错误)
  2. Nginx-----相关配置-详细介绍
  3. 0429 Scrum团队成立与第6-7章读后感
  4. 【MySQl】MyISAM和InnoDB索引对比
  5. 【转】如何缩进你的代码?
  6. Chrome开发者工具和Firebug的一些简单比较
  7. C#(WinForm) + MySQL的中文编码问题(MySQL中文编码的终极解决方案)
  8. 16g版nexus5 升级带android 4.4,Nexus 5升级如何Android 4.4.1 Nexus 5升级到4.4.1方法教程
  9. MFC VS2012对话框背景填图
  10. 2021年第十二届蓝桥杯 - 省赛 - C/C++大学C组 - D.相乘