首页 > 其他分享 >Timus Online Judge 1005. Stone Pile——01背包好题

Timus Online Judge 1005. Stone Pile——01背包好题

时间:2022-08-27 18:15:49浏览次数:158  
标签:Stone 01 int sum 好题 石头 Pile Online dp

题目

1005. Stone Pile @ Timus Online Judge

就是给你一组堆石头,分成两组,叫你求两组重量差的最小值

思路

这道题解法很巧妙,用01背包来解决

dp[i][j]: 表示前i个物品里面,花费代价小于等于j能获得的价值最大值,这里的代价为石头重量,价值也为石头重量。这样处理了后 dp[n][sum/2] (sum为石头重量和), 就表示让每堆石头重量更接近sum/2的最大价值。我们只有让每堆石头更接近sum/2, 那么差才最小

代码

/*
 * @Descripttion:
 * @Author: Echo
 * @version:
 * @Date: 2022-08-27 14:40:28
 * @LastEditors: Echo
 * @LastEditTime: 2022-08-27 17:41:45
 */
#include <bits/stdc++.h>
using namespace std;
const int N = 2e6+9;
int dp[N],w[N];
int main()
{
    int n;
    cin>>n;
    int  sum=0;
    for(int i=1; i<=n; ++i){
        cin>>w[i];
        sum+=w[i];
    }
    for(int i=1; i<=n; ++i){
        for(int j=sum/2; j>=w[i]; --j){
            dp[j] = max(dp[j], dp[j-w[i]]+w[i]);
        }
    }
    cout<<sum - 2*dp[sum/2];
    return 0;
}

/*
5
30 45 12 23 8
7
2 1 9 8 4 2 5
 */

标签:Stone,01,int,sum,好题,石头,Pile,Online,dp
From: https://www.cnblogs.com/Jin-yt/p/16631080.html

相关文章

  • 版本控制工具Git介绍-01
    使用版本控制工具是为了方便团队开发,比如多人共同维护一个项目的时候,用版本控制工具可以很方便的维护项目代码,如果哪天你改了一个版本,出问题了,我们也可以很快的找到你改了......
  • ZJU-199001 第三周练习 2 数字特征值 位运算算法
    题目对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值.对于一个整数,从个位开始对每一位数字编号,个位是\(1\)号,十位是\(2\)号,以此类推.这个整数......
  • Java·初篇 01认识第一个程序
    Java·初篇01认识第一个程序一、前期准备【环境搭建】(https://www.java.com/zh-CN/)了解JRE和JDKJDK的下载和按照【常用DOS命令】目的:使用JDK,在bin目录中编译ja......
  • 数据库学习笔记 (本数据库学习笔记以SQL sever 2019 为例进行学习) 20220823 第一节课
    教材及参考数据库课程讲什么?内容安排第一部分数据库原理部分第一章数据库系统概述为什么要学习数据库?数据库的发展改变了人们的工作和生活模式信息积累与运用......
  • VS2019修改文件编码
    1.查看文件编码安装扩展,FileEncoding,就可以在文件窗口右下角查看到该文件的编码方式,同时也可以直接在此处修改。2.修改项目的文件编码使用editorconfig文件。在工具......
  • 「NOI2016」网格 题解
    「NOI2016」网格题解前言感谢zqm学长提供调代码服务!本文中,所有没有特殊说明的连通都是指四连通,相邻都是指上下左右相邻。题目大意有一个$n\timesm$的网格,上......
  • win10环境安装vs2015的问题:缺少JavaScript_ProjectSystem.msi和JavaScript_LanguageSe
    最近有同事在win10下安装vs2015总是报错,安装中途报缺少文件JavaScript_ProjectSystem.msi和JavaScript_LanguageService.msi。想想看微软发布的产品应该不至于丢三落四,缺......
  • GBPC5010W-ASEMI马达专用方桥GBPC5010W
    编辑:llGBPC5010W-ASEMI马达专用方桥GBPC5010W型号:GBPC5010W品牌:ASEMI封装:GBPCW-4正向电流:50A反向电压:1000V引脚数量:4芯片个数:4芯片尺寸:210MIL漏电流:>10ua恢复时间:ns浪涌电......
  • 记一次简单的SQL Server2016 异机恢复完整及差异备份测试
    环境:windowsserver2019 SQLserver2016,SQLserverManagementStudio18备份文件包含完整备份和第一个差异备份打开SQLserverManagementStudio181.点击数据库,右......
  • JavaSE-Day01-Java流程控制
    Java流程控制用户交互Scanner通过Scanner类的next()和nextLine()方法来获取用户输入读取前可以使用hasNext()和hasNextLine()来判断是否还有输入的值next:不能得到带......