码迷,mamicode.com
首页 >  
搜索关键字:二进制拆分    ( 62个结果
二进制优化多重背包
#include using namespace std; const int maxn=1000+10; int n,k,w[maxn],v[maxn],dp[11*maxn]={0},nw[11*maxn],nv[11*maxn],cnt=0,c[maxn]; //01背包二进制拆分 //普通拆... ...
分类:其他好文   时间:2020-06-06 22:01:03    阅读次数:85
SCOI 2016 萌萌哒
"SCOI 2016 萌萌哒" solution 有点线段树的味道,但是并不是用线段树来做,而是用到另外一个区间修改和查询的利器——ST表 我们可以将一个点拆成$logN$个点,分别代表从点$i$开始,长度为$2^k$的子串 那么当我们处理两个区间相等的关系时,对区间做二进制拆分,拆成$log$个区 ...
分类:其他好文   时间:2020-05-04 19:04:50    阅读次数:50
混合背包问题
题目 有n种物品和一个容积为V的背包,第i种物品有amount[i]个,体积cost[i]和价值valum[i],问如何选取物品使得放入背包的物品价值之和最大。 优化 amount[i]==1时,当01背包处理。 amount[i]≥1时,采用二进制拆分,从而转换成01背包求解,具体如下: 在上面的 ...
分类:其他好文   时间:2020-04-27 19:17:06    阅读次数:49
多重背包问题(二进制优化)
有N种物品和一个容量为V的背包。第i种物品最多有p[i]件可用,每件费用是w[i],价值是v[i]v[i]v[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 具体转换为01背包的策略: 二进制拆分 将第i种物品分成若干件物品,其中 例如意见物品的p【i】为13,则 ...
分类:其他好文   时间:2020-04-27 19:16:11    阅读次数:53
CH5E07 划分大理石(背包dp+二进制拆分)
传送门 大意: 有价值分别为1..6的大理石各a[1..6]块,现要将它们分成两部分,使得两部分价值之和相等,问是否可以实现。其中大理石的总数不超过20000。 解题思路: 妥妥的多重背包+二进制拆分,主要写一下二进制拆分存个档(儿时的噩梦)。 总所周知,20,21,22,……2k-1从中挑选若干个 ...
分类:其他好文   时间:2020-04-09 00:16:52    阅读次数:90
蛤的旅行(倍增二进制拆分)
蛤的旅行 [题目描述] 长江的江心有n块石头。为了简化问题,我们把长江看做一条数轴,且所有石头的坐标均为正整数。 有一只蛤在这些石头上跳。这只蛤在长江中生活了数百年,多年与风浪搏斗的经验使他锻炼出了极强的跳跃能力,可以瞬间从一块石头跳到与其相距任意远的另一块石头上。 然而,在一次意外进入一片诡异的灌 ...
分类:其他好文   时间:2020-02-21 22:01:39    阅读次数:86
二进制拆分+贪心——cf1303D
/* 先把n二进制拆分,用map保存a[i]出现次数 然后从低位到高位去凑n 对于n某位是1的位数i 考虑mp里是否有1<<i 如果没有,考虑mp里比i低位的数能否凑出i, 如果还是没有,就从高位去拆,只有这种情况下,才会对答案有贡献 */ #include<bits/stdc++.h> using ...
分类:其他好文   时间:2020-02-13 09:46:36    阅读次数:55
Luogu P4366 [Code+#4]最短路
"Link" 直接连边是$O(n^2)$的显然不可取。 考虑二进制拆分,对于点$u$,我们可以只连$u\rightarrow u\oplus 2^k$的边,显然在这样建出来的图上跑最短路和在原图上跑最短路是等价的。 不过因为中间可能会经过$ n$的点,所以要把点补齐至$[0,2^k)$。 ...
分类:其他好文   时间:2020-01-25 16:51:50    阅读次数:87
Luogu P3295 [SCOI2016]萌萌哒
"Link" 一个很trivial的想法是并查集暴力维护,最后的答案是$9 10^n$,$n$是最后剩下的并查集的个数。 因为每次连边的都是一段区间到另一端区间,所以我们可以二进制拆分,把并查集的每个点拆成$\log$个点,每次把要连边的区间拆成$\log$个点直接连,最后再还原。 ...
分类:其他好文   时间:2020-01-18 01:07:26    阅读次数:64
多重背包
http://acm.hdu.edu.cn/showproblem.php?pid=2844 题意:给你n种硬币和商品价格m,每种硬币给出价值和数量。问1-m价值中有多少种价值可以用这些硬币表示出来。 解法:因题目数据量较大,必须二进制拆分成01背包优化。 最后遍历所以容量,如果价值等于容量则表示该 ...
分类:其他好文   时间:2019-12-04 01:28:57    阅读次数:65
62条   1 2 3 4 ... 7 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!