引流推广网站wordpress资讯类主题

diannao/2026/1/20 21:19:37/文章来源:
引流推广网站,wordpress资讯类主题,更多标签的下载方法,重庆建设工程安全管理平台首先谢谢Christal_R的文章(点击转到链接)让我学会01背包 本文较长#xff0c;但是长也意味着比较详细#xff0c;希望您可以耐心读完。 题目: 现在有一个背包(容器),它的体积(容量)为V,现在有N种物品(每个物品只有一个),每个物品的价值W[i]和占用空间C[i]都会由输入给出,现在…  首先谢谢Christal_R的文章(点击转到链接)让我学会01背包 本文较长但是长也意味着比较详细希望您可以耐心读完。 题目: 现在有一个背包(容器),它的体积(容量)为V,现在有N种物品(每个物品只有一个),每个物品的价值W[i]和占用空间C[i]都会由输入给出,现在问这个背包最多能携带总价值多少的物品? 一.动态规划与递推解决01背包 初步分析: 0. 浅谈问题的分解 在处理到第i个物品时,可以假设一共只有i个物品,如果前面i-1个物品的总的最大价值已经定下来了,那么第i个物品选不选将决定这1~i个物品能带来的总的最大价值 刚刚是自顶向下,接下来反过来自底向上,第1个物品选不选可以轻松地用初始化解决,接下来处理第i个物品时,假设只有2个物品就好,那他处理完后前2个物品能带来的最大总价值就确定了,这样一直推下去,就可以推出前n个物品处理完后能带来的最大总价值   1.分层考虑解决每个物品最多只能装一次 每个物品只能装一次,那么就应该想到常用的一种方法,就是用数组的纵轴来解决,对于n个物品,为它赋予i1~n的编号,那么数组的纵轴就有n层,每层只考虑装不装这个物品,那么分层考虑就可以解决最多装一个的问题了   2.对0,1的理解 对于每个背包,都只有0和1的情况,也就是拿或者不拿两种情况 如果拿:那么空间就会减一点,比如说现在在考虑第i个物品拿不拿,如果说当前剩余空间为j,那么拿了之后空间就变为j-c[i],但是总价值却会增加一点,也就是增加w[i] 如果不拿:那么空间不会变,还是j,但是总价值也不会变化   3.限制条件 所以对于这题来说有一个限制条件,就是空间不超出,然后目标就是在空间不超出的情况塞入物品使总价值最大,在前面,我们已经讲了数组的纵轴用来表示当前处理到第几个物品,那么只靠这个是不够的,而且这个数组的意义还没有讲 这题就是限制条件(空间)与价值的平衡,你往背包中塞东西,价值多了,可是空间少了,这空间本来可能遇到性价比更高的物品但也可能没遇到 4.具体的建立数组解决问题 有了前面的限制情况和0,1的分析就可以建立数组了 对于这个数组,结合题目要求来说,数组的意义肯定是当前的总价值,也就是第i个物品的总价值,那么题目还有一个限制条件,只靠一个n层的一维数组是不够的,还需要二维数组的横轴来分析当前的剩余容量 所以我们有了一个数组可以来解决问题了,这个数组就叫f好了,然后它是一个二维数组,它的纵轴有i层,我希望它从i1~n,不想从下标0开始是为了美观,然后这个二维数组的横轴代表着当前剩余的空间,就用j来表示,j0~V,0就是没有空间的意思,V前面说了,是这个背包的总容量 我们把这个二维数组建立在int main()的上面,所以它一开始全部都是0,省去了接下来赋初值为0的功夫 有了数组f[i][j],然后对于每个f[i][j],它表示的是已经处理到第i个物品了,当剩余空间还有j时,能带有的最大价值,也就是说f[i][j]存储的是总价值 说是总价值,可是涉及到放物品还是不放物品的问题,所以再细致点就是:当前剩余空间为j,用这j空间取分析第i个物品装不装如,处理执行完行为后,f[i][j]就表示了当前能装入的最大价值   5.推导递推方程 PS:谈一下对于动态规划递推的理解:处理到第i层时,假设前i-1层的数据都知道而且可以根据1~i-1层的数据推出i,那么就成功了一半了,因为第i层如此,那么第i-1层也可以根据1~i-2层推出,接下来只需要定义好数组的初始条件和注意边缘问题以及一些细节就可以了 对于第i个物品,假设前i-1个物品都已经处理完 如果第i个物品不能放入:这种情况就是背包已经满了,也就是当前剩余空间j小于第i个物品的占用空间C[i], 这种情况下,空间没有变化,价值也没有变化,对于空间没有变化,即第i个物品的空间和第i-1个物品的空间j相同,对于价值没有变化,也就是数组f的值相同,然后开始利用前面的数据,也就是f[i][j]]f[i-1][j]   如果第i个物品不想放入,那么和不能放入其实是一样的,动机不同但结果相同,f[i][j]]f[i-1][j]   如果第i个物品放入了,那么f[i][j]f[i-1][j-c[[i]]w[i],下面解释一下这个公式,第i个物品的占用空间为c[i],价值为w[i],f[i-1][j-c[[i]]w[i]表示前i-1个物品在给它们j-c[[i]空间时能带来的最大价值 再回到第i个物品的角度,此时有j个空间,如果已经确定要放入,为了使空间充分利用,肯定是这j个空间只分c[i](刚好够塞下第i个物品),剩下的j-c[[i]全部给前面i-1个物品自由发挥,反正前面f[i-1][j-c[[i]]已经知道了,然后前面i-1个物品用j-c[i]的空间能带来最大的利益f[i-1][j-c[[i]],第i个物品用c[i]的空间带来利益w[i],所以如果第i个物品放入后,总利益是f[i][j]f[i-1][j-c[[i]]w[i]   但是,长远来说,有一些偏极端情况,放入这个物品,也许它价值w[i]很高,但是它占用空间c[i]也大,它的性价比可能很低,所以这时候就需要max函数了 当还有空间时:F[i,j] max[F[i−1,j],F[i−1,j−C[i]] W[i] 当空间不够时:F[i,j] F[i−1,j] 下面一个个解释: 当还有空间时:这时有两种方法,放还是不放,如果放,那么利益由两段组成1~i-1是一段,i是另一段;如果不妨,那么利益和上一层剩j空间时相同,这两个东西大小需要比较,因为如果放入,虽然加上了w[i],利益,可是冲击了前i-1个物品的利益,如果不放,那么没有收获到第i个物品的利益,但是把原来属于1~i的空间j,分给了1~i-1个物品,说不定前1~i-1的每个物品都空间小,价值高,性价比高呢? 当空间不够时,它也只能F[i,j] F[i−1,j]了,没有选择的余地   #includebits/stdc.h//万能头文件 #define ll long long using namespace std; const ll maxn100; ll n,v,f[maxn][maxn]; ll c[maxn];//每个物品占用空间 ll w[maxn];//每个物品的价值 int main() {cinnv;for(ll i1;in;i)scanf(%lld,c[i]);for(ll i1;in;i)scanf(%lld,w[i]);for(ll i1;in;i)//第i个物品for(ll jv;j0;j--)//剩余空间j{if(j c[i])//如果装得下f[i][j]max( f[i-1][j-c[i]]w[i],f[i-1][j]);else//如果装不下f[i][j]f[i-1][j];}coutf[n][v]endl;//输出答案} 01背包普通版代码 点击加号展开代码,如果点不开可以看底下的代码     二.01背包的空间优化 有了前面基础版01背包的学习,现在学习这个就容易多了 1.何为空间优化,为什么要空间优化 在01背包中通过对数组的优化(用了滚动数组的方法),可以使本来N*V的空间复杂度降低到V,也就是把关于第几个物品的N去掉了(下面会解释为什么可以这么做) 至于为什么要空间优化,首先是因为递推本来就是用空间换时间,消耗的空间比较大,然后关于算法的竞赛一般都会有空间的限制要求,最后,在找工作面试时,面试官肯定会问一些优化的问题,平时养成优化的习惯面试时也有好处 2.为什么这题可以降维 通过观察可以发现对于普通版的01背包递推式,f[i][...]只和f[i-1][...]有关,那么我们可以用一种占用,一种滚动的方法来循环使用数组的空间,所以这个方法叫滚动数组,对于将来肯定用不到的数据,直接滚动覆盖即可,具体的如何滚动会放下面讲 还有就是滚动数组的缺点是牺牲了抹除了大量数据,不是每道题都可以用,但是在这,答案刚好是递推的最后一步,所以直接输出即可,递推完后不需要调用那些已经没了的数据,所以这题可以 下面先画个图理解一下滚动的大致概念 反正就是不断覆盖的过程 3.这题如何具体优化 下面开始具体化的分析 对于第i层,它只和第i-1层有关,但是对于剩余空间j无法优化,所以现在拿i开刀,把他砍掉,用一个长度为V(总空间)的数组来表示,然后每次相邻的两个i和i-1在上面一直滚动 所以现在建立一个数组f[V],一维数组大小为V 首先建立两个复合for循环 for(i1~n)   for(jv~0) 记住这里第二层循环必须是v~0而不是0~v,先记着,后面会解释, 接下来的分析建议配合下面图片学习 然后在循环的过程中,还是老样子,假设我们已经循环到i2这层了(也就是说i1已经循环完了),然后对于i2这一层,我们对j循环,j从v到0 假如现在jv,我们让f[j]max(f[j],f[j-c[i]]w[i]) 在没有覆盖之前,所有的f数据都是属于上一层也就是第一层的,我们就当作i-1层数据已经准备好了,然后把max内的拆成两半分析,对于f[j]f[j]就是不放的情况,那么总价值没有改变,所以对于f[j]f[j]就是形式上的更新数据,把i-1层的f[j],给了i-1层的f[j]...对于f[j]f[j-c[i]]w[i],那个w[i]是肯定要加的不用讨论,然后我们观察一下,对于下标j-c[i]是不是肯定会小于j,那么如果说j从V~0也就是从最大到最小,每次赋值处理都是从前面的格子看看数据参考,并没有修改 再详细点说的话就是对于f[j]f[j-c[i]]w[i],f[j-c[i]]是第i-1层的东西,让jv~0是为了让f数组每次滚动覆盖时都是覆盖接下来不需要用的位置,比如说处理到第f[8]位时,假如接下来的max判定后面那种方法总价值大,然后假设c[i]3,这时后就相当与f[8]f[8-c[i]5]w[i],我们这里只是参考了f[5]的数据,并没有改变它,因为说不定计算新一轮f[6]时又要用到旧的f[5]呢,可是我们刷新了f[8]的数字后,再j--,计算f[7],再j--,计算f[6],都不会再用到f[8]这个数据,这是由于f[j-c[i]] 中的减c[i]导致的,反之,假若我们让j0~v,就可能出现新数据被新数据覆盖的结果,我们是有底线的,只允许新数据覆盖旧数据 对于j,如果要处理f[j]max(f[j],f[j-c[i]]w[i]),就得当jc[i]时处理,因为如果jc[i],那么j-c[i]为负,下标负的情况没必要考虑,如果考虑了还可能会溢出  其实对于max,还用另一个小东西代替,有没有发现,如果f[j-c[i]]w[i]f[j],就选f[j-c[i]]w[i],如果f[j-c[i]]w[i]f[j],那选f[j]和没选一样,所以待会的空间优化版省掉了max函数,少用一种函数 #includebits/stdc.h//万能头文件 #define ll long long using namespace std; const ll maxn100; ll n,v,f[maxn]; ll c[maxn];//每个物品占用空间 ll w[maxn];//每个物品的价值int main() {cinnv;for(ll i1;in;i)scanf(%lld,c[i]);for(ll i1;in;i)scanf(%lld,w[i]);for(ll i1;in;i)//第i个物品for(ll jv;j1;j--)//剩余空间j{if(f[j]f[j-c[i]]w[i] j-c[i]0 )//二维数组变一维数组f[j]f[j-c[i]]w[i];//如果值得改变并且j的空间还装得下就赋新值}coutf[v]endl;//输出答案} 空间优化版01背包 点击号展开代码,为了排版好看把代码折叠了,为了防止有人点不开文章底部还有一份没折叠的 三.初始化的细节 初始化有两种,一种情况是只要求价值最大,另外一种是要求完全刚好塞满,第一种的初始化是赋值为0,第二种的初始化是赋值为负无穷,因为没有塞满,所以数据实际上不存在,也就是让不存在的数不现实化,让与这种数相关的数据都不可用化 下面贴一些背包九讲的文字 1.4 初始化的细节问题 我们看到的求最优解的背包问题题目中事实上有两种不太相同的问法。 有的题目要求“恰好装满背包”时的最优解有的题目则并没有要求必须把背 包装满。一种区别这两种问法的实现方法是在初始化的时候有所不同。 3 如果是第一种问法要求恰好装满背包那么在初始化时除了F[0]为0其 它F[1..V ]均设为−∞这样就可以保证最终得到的F[V ]是一种恰好装满背包的 最优解。 如果并没有要求必须把背包装满而是只希望价格尽量大初始化时应该 将F[0..V ]全部设为0。 这是为什么呢可以这样理解初始化的F数组事实上就是在没有任何物 品可以放入背包时的合法状态。如果要求背包恰好装满那么此时只有容量 为0的背包可以在什么也不装且价值为0的情况下被“恰好装满”其它容量的 背包均没有合法的解属于未定义的状态应该被赋值为-∞了。如果背包并非 必须被装满那么任何容量的背包都有一个合法解“什么都不装”这个解的 价值为0所以初始时状态的值也就全部为0了。 这个小技巧完全可以推广到其它类型的背包问题后面也就不再对进行状 态转移之前的初始化进行讲解。 初始化的细节问题-背包九讲 四.常数级的优化 1.5 一个常数优化 上面伪代码中的 for i 1 to N for v V to Ci 中第二重循环的下限可以改进。它可以被优化为 for i 1 to N for v V to max(V −ΣN i Wi,Ci) 这个优化之所以成立的原因请读者自己思考。提示使用二维的转移方程思 考较易。 常数级优化-背包九讲 不得不说,这也太抠门了,算法效率追求到极致    五.小结 01背包很重要,是后面的基础 要学会推导状态转移方程与实现它 要学会去优化空间复杂度 PS:祝每个看到这里的人都能掌握01背包     接下来放一下代码大合集 普通版代码 #includebits/stdc.h//万能头文件 #define ll long long using namespace std; const ll maxn100; ll n,v,f[maxn][maxn]; ll c[maxn];//每个物品占用空间 ll w[maxn];//每个物品的价值 int main() {cinnv;for(ll i1;in;i)scanf(%lld,c[i]);for(ll i1;in;i)scanf(%lld,w[i]);for(ll i1;in;i)//第i个物品for(ll jv;j0;j--)//剩余空间j{if(j c[i])//如果装得下f[i][j]max( f[i-1][j-c[i]]w[i],f[i-1][j]);else//如果装不下f[i][j]f[i-1][j];}coutf[n][v]endl;//输出答案} 空间优化版代码 #includebits/stdc.h//万能头文件 #define ll long long using namespace std; const ll maxn100; ll n,v,f[maxn]; ll c[maxn];//每个物品占用空间 ll w[maxn];//每个物品的价值int main() {cinnv;for(ll i1;in;i)scanf(%lld,c[i]);for(ll i1;in;i)scanf(%lld,w[i]);for(ll i1;in;i)//第i个物品for(ll jv;j1;j--)//剩余空间j{if(f[j]f[j-c[i]]w[i] j-c[i]0 )//二维数组变一维数组f[j]f[j-c[i]]w[i];//如果值得改变并且j的空间还装得下就赋新值}coutf[v]endl;//输出答案}  转载于:https://www.cnblogs.com/zyacmer/p/9961710.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/89835.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

建站快车用户登录app开发公司招聘

目录 1 实例内部类2 静态内部类3 匿名内部类4 本地内部类 1 实例内部类 内部类: 外部类有一个…或外部类是由什么什么组成的。 实例内部类: 定义在类的内部的一个类。 如何实例化内部类对象? OuterClass.InnerClass innerClass2 out.new InnerClass()…

没有公司个人可以做网站卖东西吗写网站建设需求文档

ATLAS 200 作为算理模块,可以作为主/协处理器接入RK3588,有两种模式:RC 模式和EP模式 RC模式:rk3588 和 ATLAS 200 可分别独立处理自身业务数据,不存在业务互相依赖,二者可通过网络等方式进行通信,ATLAS …

网站开发php岗位职责iis下安装wordpress

IE浏览器似乎给body元素默认了一个相对定位属性(position: relative)”。其实,IE下,z-index为负值的层确实是在body下的。大概是因为body的默认背景色是transparent(我猜的,alert出来的为空),html的默认背景…

设计师关注的十大网站邯郸制作小程序的公司

a,高级设置里的环境变量 jdk的配置 b,下载Google的sdk,里面直接包含eclipse 1,新建一个项目 2,起个名字 3,设么走不做,next 4,只操作选择显示的三种方式 5,next什么都不做…

青岛做家纺的公司网站做推广的都是怎么推

算法复习第五章贪心法概述TSP最近邻点策略最短连接策略图着色问题最小生成树(Prim算法、Kruskal)0-1bag问题活动安排问题多机调度概述 TSP 最近邻点策略 最短连接策略 图着色问题 最小生成树(Prim算法、Kruskal) 0-1bag问题 活动…

网站建设费用属于管理费用科目网站大多用源码来做吗

【BZOJ1831】[AHOI2008]逆序对(动态规划) 题面 BZOJ洛谷 题解 显然填入的数拎出来是不降的。 那么就可以直接大力\(dp\)。 设\(f[i][j]\)表示当前填到了\(i\),上一个填的数是\(j\)的最小逆序对数。 随便拿什么维护一下转移就好了。 #include&…

网站建设项目需求书南阳 网站建设

以下是在您电脑上安装 Windows 11 操作系统的最低要求。如果您的电脑不满足这些要求,您可能无法在设备上安装全新的 Windows 11 操作系统。处理器( CPU):1 GHz 或更快的支持 64 位的中央处理器(双核或多核)…

国外有哪些设计网站推荐阿里云云栖wordpress

一、UIAbility的生命周期 在UIAbility的使用过程中,会有多种生命周期状态,掌握UIAbility的生命周期,对于应用的开发非常重要。 1、UIAbility的生命周期 UIAbility的生命周期主要分为以下4个: Create---Foreground---Background---…

服装设计网站有哪些推荐中铁建设集团有限公司招标网

原文地址:OpenAI vs Open-Source Multilingual Embedding Models 选择最适合您的数据的模型 2024 年 2 月 25 日 OpenAI最近发布了他们的新一代embedding模型,称为embeddingv3,他们描述是他们性能最好的embedding模型,具有更高…

怎么申请 免费网站网站建设推广

基于Springboot的原创歌曲分享平台(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的原创歌曲分享平台 本系统分为平台功能模块、管理员功能模块以及用户功能模块。 平台功能模块:在平台首页可以查看首…

环球设计网站邯郸网站制作找谁

渗透测试常用专业术语 POC,EXP,Payload,Shellcode POC 全程Proof of Concept,中文"概念验证",常指一段漏洞证明的代码 EXP 全程Exploit ,中文"利用",指利用系统漏洞进行攻击的动作 Payload 中文"有效载荷",指成功Exploit之后,真正在目标系…

广告推销福建seo外包

一直想搭建一个PG流复制,最近正好有一个新环境,操作系统是最新的,rhel 9.3,数据库是最新的 pg 16.1,借鉴了网上的步骤,尤其是小工到专家的内容,在此谢过。 1.安装环境 1)IP: 主:192.168.133.151…

兰州新站seo海外代发货平台

1 要求 将一段 HTML脚本 封装成一个字符串&#xff0c;将这个字符串转换成一个jQuery对象&#xff1b;然后将这个jQuery对象添加到指定的元素中去 2 步骤 定义字符串 var str <div id"box01">hello world</div>; //定义一个字符串 利用jQuery框架将字符…

如何查询网站备案进度互动教学平台

目录 引言 官网 下载 配置 1. 鼠标右键“此电脑”>“属性” 2. 打开高级系统设置 3. 打开环境变量 4. 双击系统变量中的path 5. 新建新的path 6. 将刚刚安装的位置加入环境变量 7. 检查是否安装成功 引言 PHP&#xff08;"PHP: Hypertext Preprocessor"…

从零开始学做网站西安关键词排名软件

所属年份&#xff1a;2010.9;2011.9;2012.3请编写函数fun,该函数的功能是&#xff1a;将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。例如,若二维数组中的数据为W W W WS S S SH H H H则字符串中的内容应是&#xff1a;WSHWSHWSHWSH。#include#define M 3#d…

西安借贷购物网站建设.net美食网站开发源代码

Zuul 作为路由网关组件&#xff0c;在微服务架构中有着非常重要的作用&#xff0c;主要体现在以下 6 个方面&#xff1a; Zuul, Ribbon 以及 Eureka 相结合&#xff0c;可以实现智能路由和负载均衡的功能&#xff0c;Zuul 能够将请求流量按某种策略分发到集群状态的多个服务实例…

网站建设陆金手指谷哥4如何提高网站关键词排名

当今社会越来越依赖于计算机了&#xff0c;没事之余做了几个修复DBR的脚本(NTFS FAT32 exFAT)&#xff0c;这样有些操作就不用人工去操作了&#xff0c;1、节省时间 2、提高效率 3、降低人工操作的出错率。转载于:https://blog.51cto.com/haobinnan/172341

做网站应该用多少分辨率网页设计的定义

全世界只有3.14 %的人关注了青少年数学之旅这是一个普遍无趣的时代&#xff0c;很多人看似忙到起飞内在却空虚迷茫。今天我们为你诚意推荐几个公众号它们会成为你生活的一剂调味料&#xff0c;让你做一个学识丰富、灵魂有趣的人。快来关注&#xff0c;开启精彩的生活吧&#xf…

网站后角色管理权限怎么设置?做电影网站不放国内主机

文章目录 第十二章&#xff1a;预处理命令宏定义无参宏定义带参数的宏定义 文件包含处理 第十二章&#xff1a;预处理命令 作用&#xff1a;由编译预处理程序对程序中的特殊命令作出解释&#xff0c;以产生新的源程序对其进行正式编译 C语言与其他语言的重要区别就是可以使用预…

制作网站不给源代码网站开发作为固定资产怎么摊销

目录 ​ 前言&#xff1a; 正文&#xff1a; 什么是CTF&#xff1f; 什么是PWN? 为什么要学CTF&#xff1f; CTF竞赛模式&#xff1a; CTF各大题型简介&#xff1a; 学之前的思考&#xff1a;分析赛题情况 常规做法 CTF比赛需要的知识储备 CTF比赛的神器&#xff…