J.搬砖【蓝桥杯】/01背包+贪心

搬砖


01背包+贪心

思路:要让重量更小的在更前面,价值更大的在更后面,vi−wj>vj−wi = vi+wi>vj+wj

第 i 个箱子放在第 j 个箱子下面就显然更优。所以进行排序再用01背包即可。

cpp 复制代码
#include<iostream>
#include<algorithm>
#define endl '\n'
using namespace std;
typedef long long ll;
struct node
{
    ll w,v;
}arr[1005];
bool cmp(node &n1,node &n2)
{
    return n1.v+n1.w<n2.v+n2.w;
}
ll dp[1005][20005];
int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++) cin>>arr[i].w>>arr[i].v;
    sort(arr+1,arr+n+1,cmp);
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=20*n;j++)
        {
            ll y=min(j-arr[i].w,arr[i].v);
            if(y<0)
            {
                dp[i][j]=dp[i-1][j];
                continue;
            }
            dp[i][j]=max(dp[i-1][j],dp[i-1][y]+arr[i].v);
        }
    }
    cout<<dp[n][20*n]<<endl;
    return 0;
}
相关推荐
Chester_19991 天前
CSP202104C.DHCP服务器
开发语言·程序人生·蓝桥杯
_Narcissus_4 天前
二分算法笔记及例题
数据结构·c++·笔记·算法·蓝桥杯·查找·二分算法
aqiu1111117 天前
【算法刷题】蓝桥杯/AtCoder:删除元素后的中位数问题(Symmetry / Median)
算法·蓝桥杯·排序·中位数
恣逍信点12 天前
《凌微经》价值论:变化即本体,价值即涌现
人工智能·科技·程序人生·蓝桥杯·业界资讯·交友·哲学
小龙报15 天前
【优选算法】1.搜索插入位置 2.x的平方根
java·c语言·数据结构·c++·python·算法·蓝桥杯
依然鸣19 天前
PTA团体程序设计天梯赛L2真题讲解L2-037-040
c++·经验分享·学习·算法·蓝桥杯·深度优先·pat考试
YuforiaCode20 天前
第十六届蓝桥杯 2025 C/C++组 数列差分
c语言·c++·蓝桥杯
QAQo7T20 天前
Python组蓝桥杯备赛超详细知识点总结笔记_排序算法篇
笔记·python·算法·蓝桥杯·排序算法
普通网友20 天前
蓝桥杯 DP 优化:从 O (n²) 到 O (n) 的滚动数组实战
职场和发展·蓝桥杯
醉颜凉20 天前
蓝桥杯2025年第十六届省赛真题-好串的数目
职场和发展·蓝桥杯