首页 > 其他分享 >202209-2 何以包邮?

202209-2 何以包邮?

时间:2023-01-01 18:44:37浏览次数:43  
标签:包邮 int sum 202209 背包 何以 dp

题意:输入第一行为n,x两个正整数。分别表示n本书和可以包邮的价格下限x。随后n行表示第i本书的价格。

现在要求出在所有大于x的价格中,最小的那个。这里的价格是指任意买m( m <= n)本书的总价格。

思路:动态规划,0-1背包问题。

0-1背包问题是说:有n件物品,每件物品重量为w[i],其价值为v[i],现在有个容量为m的背包,如何选择物品使得装入背包的价值总量最大?

这里如何转化为0-1背包问题呢?可以定义:(假设所有数组存储下标从1开始)

sum = w[1] + w[2] + …… + w[n];

m = sum - x; (背包最大容量)

dp二维数组:

1)初始化:dp[i][0] = 0  ( 0 <= i <= n);  dp[0][j] = 0  (0 <= j <= m) 

2)状态转移方程:

if ( j < w [ i ] )      dp[ i ] [ j ] = dp[ i-1 ] [ j ] 

else       dp[ i ] [ j ] = max ( dp[ i-1 ] [ j ], dp[ i-1 ] [ j - w [ i ] ] + w [ i ] ) 

最后返回 sum - dp[n][m];

时间复杂度为O(nm)

代码:

#include <iostream>
#define maxn 300010
using namespace std;
int dp[31][maxn]={0};
int main(){
    int n,x,sum=0,m;
    cin>>n>>x;
    int *A = (int*)malloc(sizeof(int)*(n+1));
    for(int i = 1; i <= n; i ++){
        cin>>A[i];
        sum+=A[i];
    }
    m = sum - x;
    for(int i = 1; i <= n; i ++){
        for(int j = 1; j <= m; j ++){
            if(j < A[i]) dp[i][j] = dp[i-1][j];
            else dp[i][j] = max(dp[i-1][j], dp[i-1][j-A[i]]+A[i]);
        }
    }
    cout<<sum - dp[n][m]<<endl;
    return 0;
}

  

标签:包邮,int,sum,202209,背包,何以,dp
From: https://www.cnblogs.com/jianqiao123/p/17018404.html

相关文章

  • 202209-1 如此编码
    题意:第一行给定n和m,表示有n个题目,m表示依据这n个题目的答案计算的结果。第二行给定n个数A1,A2,……An,表示n个题目各自的选项个数。开辟A,B,C三个大小均为n+1的数组。Ci =......
  • Wix自定义操作如何以管理员身份运行
    提问Wix自定义操作如何以管理员身份运行回答如果是要让Action用管理员的身份去执行:Impersonate="no"<CustomActionId='RegisterOPC'FileKey='OPCDAServerRegister.b......
  • CU 的文章何以无故没了?
    好久没写博文,今天突然想看一下以前写的一篇文章,找了半天,还不敢相信,搜索确认了一下,这篇文章居然,真的......没了!题目是有关CFS算法的分析,记得当时被转......
  • 企业数字化转型迫切,团队协同工具何以成为“杀手锏”?
    不久前,2022世界互联网大会乌镇峰会开幕,360创始人周鸿祎以“构建SaaS生态,助力数字化共同富裕”为主题发表分论坛演讲,并宣布360集团正式上线SaaS商店,为中小微企业和实体产业......
  • 【附下载】政企数智办公平台研究报告,何以数智化?
    ​​完整报告,限免下载​​近期,在融云与艾瑞联合举办的“《2022年中国政企数智办公平台行业研究报告》解读暨融云·百幄数智办公平台发布会”上,融云联合创始人兼首席科学家......
  • Java 如何将输入的一组数,加某一符号后输出?如何以某一字符隔开的形式输入?
    以逗号进行举例以逗号分开输出:Stringstr=“zxc”;ArrayList<String> list=new Arraylist<>();for(inti=0;i<str.length;i++)list.add(str.CharAt(i)+"");String ......
  • Windows安装Flink20220915
    1.官方下载地址 https://flink.apache.org/zh/downloads.html#apache-flink-1144  最好用国内镜像下载比较快 下载后对压缩包解压,路径自定义2.安装包中是不含启动bat......
  • springcloud-alibaba dubbo/feign 20220905
    Feign组件为内部服务通信(声明式HTTP客户端)简洁、方便、优雅微服务之间的通信RESTAPIHTTP并不会开启KeepAlive功能,当前连接为短连接,每次请求都需TCP连接,效率低下 外部服......
  • 如何以时间间隔捕获CPU,procrank,内存和顶级信息?
    我们处理了一些在money或稳定性测试中复制的软件监督问题。根据logcat,内核和跟踪日志分析,SWWD阻塞的线程的回溯不是固定的。在换句话说,阻塞的线程在特定功能中不会被阻塞。......
  • 创新指南|如何以STEPPS模型6招打造病毒式传播产品
    从爆款产品到网络流行语,这种流行绝对不是依赖于运气,更不是神话。让人们喜欢读某些文章,让人们尝试某项新服务,甚至是投票竞选,这些事情的背后都有STEPPS模型的驱动,遵循或者......