背包问题
平心处
这个作者很懒,什么都没留下…
展开
-
背包问题学习8——poj2184——01背包变形
题目链接1.思想转换对于每头牛,要么选要么不选,有点类似于01背包,但是又有两个参数:智力值和幽默值,我们设dp[i]为智力值为i时对应的幽默值最大,最终选择完后能够得到最大的幽默值,...原创 2021-05-17 10:30:10 · 111 阅读 · 1 评论 -
背包问题学习7——poj3181——高精度大数处理
题目链接数据超过范围时的处理方法#include<iostream>using namespace std;#define ll long longconst ll inf=1e18;int main(){ int n,k; while(cin>>n>>k){ ll dp[1005]={0},a[1005]={0}; dp[0]=1; for(int i=1;i<=k;i++){原创 2021-05-17 09:28:34 · 133 阅读 · 0 评论 -
周末总结
背包问题学习1背包问题学习2背包问题学习3时间分割点(上周所写以及本周所写)背包问题学习4背包问题学习5背包问题学习6原创 2021-05-17 10:35:33 · 97 阅读 · 0 评论 -
背包问题学习6——poj——1787——记录路径
记录路径的代码书写注意点1.因为是记录路径,所以要一个一个的背包进行更新,不能使用二进制代码优化2.主要代码部分if (dp[j - v[i]] + 1 > dp[j] && dp[j - v[i]] && used[j - v[i]] < num[i]) { dp[j] = dp[j - v[i]] + 1; used[j] = used[j -原创 2021-05-15 22:40:53 · 347 阅读 · 0 评论 -
背包问题学习5——循环细节——poj2163
题目链接1.循环细节写出相应代码后,如果循环明显会超时,则考虑优化可能的优化角度(1)代码本身能够优化:比如背包的二进制优化,即是对代码本身进行优化(2)题目条件进行优化:比如说这个题,本金和固定bond部分都是1000的倍数,从而对循环量进行优化对第二条也要警惕些,从第二条感觉到题目的输入部分对数据量的描述也要警惕了(能够优化循环量)2.题目代码#include<iostream>#include<cstdio>#include<cstring>u原创 2021-05-12 22:20:10 · 133 阅读 · 1 评论 -
背包问题学习4——上界确定(鸽笼原理)、二进制代码优化放进循环中——poj3260(补充理解)
题目链接1.二进制代码优化放进循环中的代码for (i = 1; i <= n; i++) { for (k = 1; k <= num[i]; k *= 2) { for (j = vol; j >= k * val[i]; j--) { dp[j] = min(dp[j], dp[j - k * val[i]] +原创 2021-05-12 00:49:23 · 162 阅读 · 4 评论 -
背包问题学习3——dp状态覆盖
poj1276/作业题O做题时漏掉的点:dp状态更新覆盖掉了之前的状态反思点:降维时要考虑之前的状态是否会被覆盖掉#include <iostream>#include <stdio.h>#include <algorithm>#include <stdlib.h>#include<vector>#define N 10#define maxn 10010#define maxnn 100010using namespace原创 2021-05-07 21:30:32 · 135 阅读 · 1 评论 -
背包问题学习2——hdu1059——思维转换、二进制优化
题目链接1.思维转换两个人分的石子重量值相同,等效成一个人分得一半的石子值,瞬间出来了背包问题模板也就是说有相同量要归到最小规模——便于表示、出思路2.二进制优化代码模板int j = 1; for (int i = 1; i <= N; i++) { int temp = 1; while (a[i] > temp) { c[j++] = temp原创 2021-05-06 23:18:18 · 134 阅读 · 1 评论 -
背包问题学习1——去除dp后效性——hdu3466——Proud Merchants
作业题E/hdu3466#include<algorithm>#include<iostream>#include<vector>using namespace std;const int maxn = 5001;int n, m;int dp[maxn];struct xiao{ int pi, qi, vi;}a[maxn];bool cmp(xiao x, xiao y){ return x.pi - x.qi > y原创 2021-05-05 09:42:46 · 213 阅读 · 0 评论