摘要: HDU2844买表多重背包问题题目大意都不大好懂,是利用手头上的硬币看看能组合出多少种价格,也就是跑完背包,看看有多少背包符合要求 剩下的就是多重背包的问题了1.第一个处理办法就是直接当01背包进行存储和处理2.第二个处理办法就是扫描物品时,当这个物品和数量产生的总价格大于限制时,采用完全背包的方法 阅读全文
posted @ 2018-07-20 19:05 Butterflier 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 做01背包做到的这个LIS,常见的n2会超时,所以才有nlogn可行 先来介绍一下n2 dp[i] 表示该序列以a[i]为结尾的最长上升子序列的长度 所以第一层循环循环数组a,第二层循环循环第i个元素前面的元素,里面做一个基本升序判断,然后找最大值 定义一个外部变量记录最大值 nlogn 用了一个数 阅读全文
posted @ 2018-07-20 16:38 Butterflier 阅读(118) 评论(0) 推荐(0) 编辑
摘要: hdu1024 最大m子序列和 给定你一个序列,让你求取m个子段(不想交的子段)并求取这m个子段和的最大值 从二维开始来看dp[i][j]表示取第j个数作为第i个子段的元素所得到的前i个子段和的最大值,那么第j个元素必取 1.第j个元素是第i个子段的开头——dp[i][j] = max(dp[i-1 阅读全文
posted @ 2018-07-20 09:42 Butterflier 阅读(1215) 评论(0) 推荐(0) 编辑
摘要: HDU1864_最大报销额 针对规定的条件,对输入的数据进行一番处理之后,可以得到一个价值数组,代表每一张可以报销的发票能报销的额度 if(n == 0)break; getchar();//吃回车 v_idx = 0; for(int i = 0;i < n;i++) { int cnt; sca 阅读全文
posted @ 2018-07-20 08:47 Butterflier 阅读(1257) 评论(0) 推荐(0) 编辑