正解:状压dp+辅助dp

解题报告:

来还债辣!NOIp之后还是轻松很多了呢,可以一点点儿落实之前欠下的各种东西一点点提升自己!加油鸭!

是个好题,可以积累套路,启发性强,而且很难

哦而且状压它也是个好东西鸭,这次D2T2好像8以内的部分分就是用神仙状压做的呢,当然我是不会的只会傻逼地推数论QAQ还是可以落实学习一下那题的神仙状压部分分呢QAQ

ummm那这题因为最开始是没太懂的 所以和之前做疫情控制一样分几个板块慢慢梳理趴qwq

首先要确定这题用什么方法?

不要说是已经看到题解说用状压dp辣!

正儿八经说,如果没有题解,怎么思考这道题

关键点大概是在n<=20这个事儿,看到20应该就要敏感了,这个就很,状压dp是趴

好滴积累套路一:20这个范围很有可能是状压dp可以往上面想下

然后确定方法之后就一步步思考,先把题目描述给一点点扣了

首先碰到第一坑点:绝对值

这一个又是一个,典型套路!就是,如果我们按部就班地一点点考虑,我们完全没有办法搞绝对值这个小妖精

但是如果它不是绝对值,就单纯的+-还是有点可做性的感觉的?那我们就可以考虑去除绝对值

想到去除绝对值大概就会有点感觉了——按照大小顺序确定!不就可以直接解决绝对值了嘛!

好滴那套路二来啦:如果碰到绝对值的问题可以考虑从小到大or从大到小考虑然后就可以直接把绝对值删了

那我们现在就相当于是,从小到大考虑每个数在pi中的位置,然后再一点点做

恩然后按照状压dp的套路我们就可以得到肯定是设fi表示状态i的minans咯,考虑怎么转移

先考虑每确定pi中的一个数会有什么贡献

显然对于长度为m的那个序列中的每个数它只会对它左右的数造成贡献

然后我们可以预处理出来贡献的

大概说下预处理贡献趴毕竟你太蠢估计再看一遍又要理解半天呢QAQ

大概就是,我们读入一个数处理完它之后就存给last,然后读入它的下一个数now,这样我们计算贡献就++glast2now ++gnow2last   (关于g的意义可能在这里还是会感觉比较难懂?可以往下翻呢后面又讲述了遍qwq

这样全部读完的时候我们就已经预处理出gij表示只确定了pj位然后这时候我们确定pi位的时候pi的系数是多少

但这当然不够我们肯定是要各种确定状况下确定pi位的贡献是趴,然后就读完之后再再再处理下嘛,就和dp差不多的转一下,就枚举状态j然后gij=gij-lowbitj+gilowbitj转移来就好辣,这样就能预处理出任意一个状态i时确定第j个数的系数是多少

昂预处理贡献港完就差不多把描述扣完辣,总算可以进入正式dp转移了 转移完就做完辣!激不激动!

总算进入正题的dp

就大力转移啊,枚举处理到p数列的i这个状态了然后一一枚举新加入的最大的数放在这个状态中确定了的位置j上

然后就转移是fi可以从(f没有确定j+确定j的贡献)转移来,当然也可以不转,就是如果把最大的数放在另一个位置上,我们发现,欸,更好,那我们就不用放这儿了嘛又不是傻逼

然后最后一个难点!确定j的贡献怎么计算

你意思意思理解下得了x

就是首先我们要知道新加入的这个最大的数它是第几大的,这个很好求吼,我们先当做我们知道了,它是第cjk大的然后它的值是data[cjk](。。。懒得想变量名了凑合着用就这样趴qwq)然后那就是我们预处理出的gji-gj2n-i)*(data[cjk]

关于g再解释下趴还是比较难理解的呢QAQ

就是我们现在相当于是说搞出状态j时插入i的系数,这个就是它的正系数,它在这里面都是被减数,相当于是加的

然后后面那个表示我现在已经确定了状态i,那它的补集就是2n-i对趴,这个补集就是还没有确定的数,这些数就都是比data[cjk]大的了,那就所有在data[cjk]旁边的数都会-它,它就成了减数了

我们就把它作为被减数时的系数-它作为减数时的系数就是它的实际系数了然后乘以它的data就是它的贡献了呢

明白了嘛!

哇我真滴觉得!!!太太太妙了!怎么这么妙呢!

over!

(还是忍不住再说句,真滴好妙啊!!!天呐!!!

牛客练习赛18E pocky游戏 状压dp的更多相关文章

  1. NowCoder110E Pocky游戏 状压DP

    传送门 题意:给出$N$个数和一个长为$M$.所有数在$[1,N]$范围之内的正整数序列$a_i$,求出这$N$个数的一种排列$p_1...p_N$使得$\sum\limits_{i=2}^M |p_ ...

  2. CDOJ 1402 三角形棋盘上的博弈游戏 状压DP

    三角形棋盘上的博弈游戏 题目连接: http://mozhu.today/#/problem/show/1402 Description 柱爷有天上课无聊,于是和同桌卿学姐一起下一种奇特的棋: 棋盘如 ...

  3. 牛客练习赛24题解(搜索,DP)

    A题,C题不讲,基础题(但是我要抨击一下这次比赛,卡cin,cout,卡的太狠了,根本就不让过的那种,QAQ) 链接:https://www.nowcoder.com/acm/contest/157/ ...

  4. 出题人的手环(牛客练习赛38D 离散化+树状数组)

    题目链接(https://ac.nowcoder.com/acm/contest/358/D) 题目描述 出题人的妹子送了出题人一个手环,这个手环上有 n 个珠子,每个珠子上有一个数. 有一天,出题人 ...

  5. [Usaco2007 Open]Fliptile 翻格子游戏 状压dp

    n,m<=15,直接搞肯定不行,考虑一行一行来, 每一行的状态只与三行有关,所以从第一行开始枚举,每一次让下面一行填上他上面那行的坑 最后一行必须要同时满足他自己和他上面那行,否则舍去 #inc ...

  6. 牛客练习赛 26 B题 烟花【DP】(经典)

    <题目链接> 题目描述 小a有个烟花,每个烟花代表着互不相同的颜色,对于第个烟花,它有的概率点燃,现在小a要去点燃它们,他想知道产生颜色的期望个数 及 产生恰好产生种颜色的概率 输入描述: ...

  7. JZYZOJ1384 种花小游戏 状压dp

    http://172.20.6.3/Problem_Show.asp?id=1384  最开始以为是dfs然后超时了,然后调了半天调成dp,还不如再写一遍... 代码 #include<iost ...

  8. 牛客练习赛32B Xor Path (树形dp)

    时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 给定一棵n个点的树,每个点有权值.定义表示 ...

  9. 牛客练习赛79E-小G的数学难题【dp,单调队列】

    正题 题目链接:https://ac.nowcoder.com/acm/contest/11169/E 题目大意 给出\(n\)个三元组\((a_i,b_i,c_i)\). 要求选出一个集合\(S\) ...

随机推荐

  1. js数组sort方法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. rgba和opacity区别

    首先来看rgba: R:红色值.正整数 | 百分数G:绿色值.正整数 | 百分数B:蓝色值.正整数 | 百分数A:Alpha透明度.取值0~1之间. 再看opacity: 后面的取值为从 0.0 (完 ...

  3. 使用VS Code写PHP并进行调试

    VS Code(Visual Studio Code)是由微软研发的一款免费.开源的跨平台文本(代码)编辑器. 1.先从官网下载安装好VS Code.官方下载地址是https://code.visua ...

  4. linux进程永久放后台运行

    我们使用ssh连接服务器之后,如果在执行某个命令需要时间特别长,当把终端断掉之后,命令就自动停止了一般我们在ssh客户端执行命令之后,默认他的父进程是ssh,所以把ssh终端关掉之后,子进程也就被自动 ...

  5. Android Log缓冲区大小设置

    当手机没有连接PC时,手机log缓冲区仍然会保存指定大小的最新log,连接pc,通过adb logcat 仍然可以拿出来 如何查看log缓缓区的大小? 通过adb logcat -g 可以查看 C:\ ...

  6. Elasticsearch学习之深入搜索三 --- best fields策略

    1. 为帖子数据增加content字段 POST /forum/article/_bulk { "} } { "doc" : {"content" : ...

  7. 题目1458:汉诺塔III(不一样的汉诺塔递归算法)

    题目链接:http://ac.jobdu.com/problem.php?pid=1458 详解链接:https://github.com/zpfbuaa/JobduInCPlusPlus 参考代码: ...

  8. git服务器

    1 关于版本控制版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统.有以下三种版本控制系统:1. 本地版本控制系统许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会 ...

  9. 自定义vue全局组件use使用

    自定义一个全局Loading组件,并使用:总结目录:|-components |-loading |-index.js 导出组件,并且install |-loading.vue 定义Loading组件 ...

  10. 关于ASP.NET Web API的ModelBinding杂谈

    由于客户端调用Web API传递的数据属性命名一般偏向javascript规范,只是简单的大小写差异没有问题,但始终会有一些特殊情况.比如OAuth的请求: client_id : "val ...