动态规划优化

news/2025/2/23 5:41:12

状态优化

bzoj2064 分裂

存在通解:把原始集合都合并,再一一拆开。

如果可以划分一些集合,使得原始集合和目标集合对应的小集合相等,那么可以节省操作次数。

ans=(n1-1)+(n2-1)-2*(x-1) x为划分的相同集合数。

n<=10,状压

另外,其实原始集合一个x,就是往右x步,目标集合一个y,就是往左y步。

那么,两个个集合对应和相等,就是走出去再回来、

f[S1][S2]表示,原始集合选择S1的元素,目标集合选择S2元素,最多可以凑成几个和相等的集合。也即能走多少个圈。

预处理集合对应的和。

转移枚举选择哪个元素(原始或者目标)2n复杂度。

枚举状态2^2n

所以,O(20*2^20)

 

 

 

性质优化:

bzoj3173[TJOI2013]最长上升子序列

题目的特点是,从1~N从小到大加入。

当然可以平衡树动态维护,但是不够优美。

回忆LIS的状态设计,f[]以i结尾LIS

那么,对于一个x,比x大的y一定不会出现在f[x]的方案中。

所以,我们可以把最终的序列求出来,然后求f[1~n]

然后,逆序输出,ansi,就是对权值为1~i的位置求f[]的最大值。

就是一个权值的前缀和。

 

至于求最终的序列,可以平衡树。但是可以倒序,用树状数组即可。

 

 

数据结构优化:

[SCOI2014]方伯伯的玉米田

二维树状数组

 

转载于:https://www.cnblogs.com/Miracevin/p/9824534.html


http://www.niftyadmin.cn/n/989472.html

相关文章

[讽刺笑话] 移动公司老板与公厕老大爷的经典对白

超强的移动公司老板与公厕老大爷的经典对白今天早上&#xff0c;移动公司某经理在外突然感觉内急&#xff0c;只好找公共厕所。“干什么的&#xff1f;”大爷喊。“我是移动老总&#xff0c;我内急。”经理。“你不知道现在什么都要收费啊&#xff1f;”大爷。“行&#xff0c;…

关于SD-WAN,你想知道的都在这里

SD-WAN是什么&#xff1f;SD-WAN&#xff0c;即软件定义广域网络&#xff0c;是将SDN/NFV/Cloud等技术应用到广域网中所形成的一种网络服务。这种服务通常用于连接不同区域的企业分支机构、数据中心、公有云等。SD-WAN出现背景随着“互联网”的深入推进&#xff0c;企业数字化进…

#那些年写过的搓程序#shell里的位数判断

当年为了输出000到120每隔6小时一张预报图&#xff0c;用000,006,120这样的规则命名&#xff0c;我写了以下的搓程序&#xff1a; for ((i0;i<120;ii6)) do if [ $i -le 9 ] then ii00$i elif [ $i -le 99 ] then ii0$i else ii$i fi done 直到我找到了print才发现上面这11行…

Windows Server 部署DNS服务

Windows Server 部署DNS服务 当我们在上网的时候&#xff0c;通常输入的是网址&#xff0c;其实这就是一个域名&#xff0c;而我们计算机网络上的计算机彼此之间只能用I P地址才能相互识别。域名&#xff08;网址&#xff09;只是相当与门牌号&#xff0c;只是为了方便记忆而增…

【js】this问题

var obj {a: 10,b: () > {console.log(this.a); // undefinedconsole.log(this); // Window {postMessage: ƒ, blur: ƒ, focus: ƒ, close: ƒ, frames: Window, …}},c: function () {console.log(this.a); // 10console.log(this); // {a: 10, b: ƒ, c: ƒ}} } obj.b(…

WOW插件:ChatFormat 0.11 发布

---------------------------------ChatFormat 0.11-------------------------------------- 下载&#xff1a;/Files/simonw/ChatFormat.rar作者&#xff1a;simonw, [2区 暗影之月 人类牧师 民族英雄]Email:&#xff1a;i-simon AT msn.comWebSite&#xff1a;http://www.cnb…

访问共享盘,无法访问,您可能没有权限使用网络资源,请与这台服务器的管理员联系以查明您是否有访问权限。...

2019独角兽企业重金招聘Python工程师标准>>> 访问共享盘&#xff0c;出现如下错误&#xff1a; 原因&#xff1a;以前访问的时候记住了用户名密码&#xff0c;这次访问的时候使用了另一个密码进行访问&#xff0c;就会出现这样的问题。 解决方案 1&#xff1a;使用n…

【转】Java并发编程:如何创建线程?

一、Java中关于应用程序和进程相关的概念 在Java中&#xff0c;一个应用程序对应着一个JVM实例&#xff08;也有地方称为JVM进程&#xff09;&#xff0c;一般来说名字默认是java.exe或者javaw.exe&#xff08;windows下可以通过任务管理器查看&#xff09;。Java采用的是单线程…