zoukankan      html  css  js  c++  java
  • 双塔

    双塔


    题目描述

    有n个数字,要求将这n个数字分成两部分(两部分可以数字个数不同),使得两部分数字之和的差最小

    输入输出格式

    输入:

    第一行为n

    第二行有n个数,即题目中所描述那样

    输出:

    两部分和的最小差

    样例

    输入:

    5
    1 3 2 3 5

    输出:

    0

    数据范围

    40%满足(n<=20)

    100%满足(n<=100),数字之和(<=1000)

    样例解释

    (1+3+3)-(2+5)=0


    对于40分做法,我们可以考虑二进制枚举/搜索(哪都有你)
    时间复杂度为O(2^N)

    枚举出各部分数字的组成,然后再暴力求和保留最优值。

    其实,我们不难发现,对于一组固定的样例,所有数字的和总是固定的。

    然后将数字的和作为容量,跑一个01背包
    背包里储存的是能否组成这个数字

    然后再将所有数的和折中寻找。
    找到第一个可以组成的数就是答案

  • 相关阅读:
    Atlas
    MHA高可用
    Mycat 读写分离
    数据库 基于GTID主从复制
    DHCP服务
    python垃圾回收机制
    深拷贝、浅拷贝、引用(总结)
    python内存管理机制
    web安全-横向越权与纵向越权
    登录功能SQL注入
  • 原文地址:https://www.cnblogs.com/Lance1ot/p/8495923.html
Copyright © 2011-2022 走看看