bitset优化背包...

该博客探讨了一道可以转化为背包问题的题目,并介绍了如何利用bitset进行优化以提高算法运行速度。博主通过将问题分解为两个数组,分别计算它们的和,然后转化为背包问题,寻找能选的最大数量。原始的DP解决方案耗时较长(约2500毫秒),而采用bitset后,时间降低到了300毫秒。尽管博主对bitset的加速原理仍不完全理解,但表示会继续学习探索。
摘要由CSDN通过智能技术生成

题目:
https://s3.amazonaws.com/codechef_shared/download/translated/SNCKEL16/mandarin/RWALK.pdf
这题可以转化成背包。
L,R什么的可以无视,因为替换他们不用时间。
将竖直方向和左右方向分成两个数组。
分别求出他们的和sum1,sum2。将其转化成背包,看成sum1的背包最多可以选多少个(长度和*2),因为要回到原点所以是长度和*2。
DP跑的时间比较久(2500+ms),用bitset(300+)优化一下(刚学的bitset,所以记下来…然而不懂为什么可以快那么多)
DP代码:

int DP(int *p,int n)
{
    memset(dp,0,sizeof(dp));
    int sum=0;
    for(int i=0; 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值