首页 > 其他分享 >P4484题解

P4484题解

时间:2022-09-23 16:58:33浏览次数:43  
标签:状态 P4484 一个 题解 max 神奇

很神奇的状态。。。。。。

很难想象这是一个人能在考场上想到的状态。

对于一个排列 \(p\),设 \(f_i\) 表示以 \(p_i\) 结尾的 LIS 的长度。

考虑排列计数的套路令所有元素 \(+1\) 然后塞一个 \(1\) 进去或者直接塞一个 \(n\)。这里考虑后者更简单。

容易发现 \(f_i\) 等价最小表示法的状态数,于是我们就得到了一个比较优秀的算法,但是还是跑不过去。

考虑一个神奇的过程,加入一个 \(n\) 后,假设是加到了 \(i\) 上,那么有 \(f_i=\max_{j=1}^{i-1}f_j+1\)。

于是我们设 \(g_n=\max_{i=1}^{n}f_i\),不再在状态上维护 \(f\) 而是 \(g\)。

容易发现相邻的 \(g\) 最多差 \(1\),于是可以把这个状压下来。复杂度 \(O(n2^n)\)。

正解就是,用这个状压打表即可。。。。。。

标签:状态,P4484,一个,题解,max,神奇
From: https://www.cnblogs.com/lmpp/p/16723277.html

相关文章

  • Vue中使用benz-amr-recorder插件实现播放amr音频文件以及在线url跨域问题解决
    场景需要做一个Android端和Web端的聊天室,Android端的录音音频文件为.amr格式,除了通过后台server端转码之后,是否可以通过插件在前端直接播放amr的音频文件。benz-amr-rec......
  • 【NEERC2011】【GYM100085F】Flights 题解
    【NEERC2011】【GYM100085F】Flights题意给定\(n\)个抛物线,保证开口向下且与\(x\)轴的两个交点都在\(x\)轴正半轴或原点。\(m\)次询问,每次询问给定四个数\(L,R,......
  • 【题解】Race
    今天教练说让刷题,我去刷了。刷到这道题,挺好的。\(n\)个同学打了\(2^{m}\)次比赛,同学\(j\)第\(i\)次比赛的成绩是\(a_j\operatorname{xor}i\),每次获得的积分......
  • 题解 P7870 「Wdoi-4」兔已着陆
    不用真的模拟一个个的蛋糕。直接将一个区间压入栈中即可。取出来时,注意将断的区间一分为二重新塞入。#include<bits/stdc++.h>usingnamespacestd;#defineN1000010......
  • CF1430G 题解
    传送门题意给定一个有向无环图,每条边有权重\(w_i\),给每个点分配权值\(a_i\),使每个点的权值大于其所有出点。设每条边的权值为\(a_{x_i}-a_{b_i}\)。输出一种分配方案,......
  • 题解【P5588 hegm 爬树】
    题目传送门。来一个不一样的工程做法。我们直接对于每一个颜色\(i\)建虚树,显然可以通过树形DP来判断颜色\(i\)的节点是否在一条路径上。原题。然后存一下这条路径......
  • AtCoder Beginner Contest 043 题解
    欢迎来到我的算法小屋前言 TaskNameAChildrenandCandies(ABCEdit)BUnhappyHacking(ABCEdit)CBeTogetherDUnbalancedA1)题目描述2......
  • CF1540B Tree Array 题解
    CF1540BTreeArray给定一棵\(n\)个节点的树。对于这棵树,我们通过下列方法来生成一个序列:等概率选择这\(n\)个节点中的一个节点,并对这个节点打上标记(初始时没有节......
  • Dev C++中窗口输出中文问题解决
    1、window+R+regedit调出注册表  2、点击Dec_Dev-Cpp_ConsolePauser.exe 3、鼠标左键双击“CodePage”,弹出设置页面。选择“十进制”,输入65001  4、右键点......
  • 【题解】ARC139D Priority Queue 2
    ?思路来源题意假设初始时有一个长度为\(N\),值域为\(M\)的数组\(A\)。现在要进行\(K\)次操作,每次操作从\([1,M]\)中选取一个数,并将其加入\(A\)中。单次操作完......