HDU 4104 Discount(n个数不能构成的最小值)
http://acm.hdu.edu.cn/showproblem.php?pid=4104
题意:
给出n个数,每个数最多只能用一次,每次可以选任意个数相加,求不能相加得到的最小值是多少。
思路:
先排序并计算出前缀和。
现在如果前k个数能组成[1,$sum_{k}$]之间的所有数,那么再新加入$a_{k+1}$后,就可以组成[$a_{k+1}$,$a_{k+1}+sum_{k}$]之间的所有数,那么这两个区间不能有间隔。所以必须满足$a_{k+1}$<=$sum_{k}$+1。
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std; int a[], sum[]; int main()
{
int n;
sum[] = ;
while(~scanf("%d",&n))
{
for(int i=; i<=n; i++)
{
scanf("%d",&a[i]);
sum[i] = sum[i-]+a[i];
}
sort(a+,a+n+);
int i;
for(i=; i<=n; i++)
{
if(a[i]>sum[i-]+) break;
}
printf("%d\n",sum[i-]+);
}
return ;
}
HDU 4104 Discount(n个数不能构成的最小值)的更多相关文章
- hdu 4104 Discount
http://acm.hdu.edu.cn/showproblem.php?pid=4104 一开始还以为这题是背包,然后优化下这个背包,但是一直都优化不出来. 然后题解是直接模拟而已,唉 先从小到大 ...
- hdu 1028 母函数 一个数有几种相加方式
///hdu 1028 母函数 一个数有几种相加方式 #include<stdio.h> #include<string.h> #include<iostream> ...
- hdu 3183 A Magic Lamp RMQ ST 坐标最小值
hdu 3183 A Magic Lamp RMQ ST 坐标最小值 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3183 题目大意: 从给定的串中挑 ...
- hdu 4542 数论 + 约数个数相关 腾讯编程马拉松复赛
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4542 小明系列故事--未知剩余系 Time Limit: 500/200 MS (Java/Others) ...
- HDU 1019 (多个数的最小公倍数)
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1019 Least Common Multiple Time Limit: 2000/1000 MS (J ...
- hdu 4104
先排序,再动态规划.须要优化 #include<iostream> #include<cstdio> #include<cstring> #include<s ...
- hdu 1258 从n个数中找和为t的组合 (DFS)
题意:首先给你一个t,然后是n,后面输入n个数,然后让你求的是n个数中和为t的序列总共有多少种,把他们按从左到右的顺序输出来. Sample Input4 6 4 3 2 2 1 15 3 2 1 1 ...
- hdu 2030 统计汉字个数
汉字统计 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- hdu 1492(约数的个数)
The number of divisors(约数) about Humble Numbers Time Limit: 2000/1000 MS (Java/Others) Memory Lim ...
随机推荐
- 设计模式之Observer(观察者)(转)
Java深入到一定程度,就不可避免的碰到设计模式(design pattern)这一概念,了解设计模式,将使自己对java中的接口或抽象类应用有更深的理解.设计模式在java的中型系统中应用广泛,遵循 ...
- highchart应用示例1--2个不同类型变量2个y轴
1.ajax调用接口和处理数据 function getCityData() { var date1 = $('#datetimepicker1').val(); var date2 = $('#da ...
- mysql查询语句 查询方式
- GIT 分布式版本控制系统的简单使用介绍
GIT 分布式版本控制系统的简单使用介绍 1.GIT的概念Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git 与 SVN 区别:1. GIT不仅仅是个版本控制系统,它 ...
- SQL 语法笔记
➪SQL ➪基本类型 char / varchar / int / smallint / numeric / real, double precision / float ➪数据定义 create t ...
- unittest和pytest的区别
一.用例编写规则 1.unittest提供了test cases.test suites.test fixtures.test runner相关的类,让测试更加明确.方便.可控.使用unittest编 ...
- python之常量和变量
局部和全局变量: # name='lhf' # def change_name(): # # global name # name='帅了一比' # print('change_name',name) ...
- JavaUtil 处理Base64的图片上传
UploadImageBase64.java package com.lee.util; import java.io.File; import java.io.FileOutputStream; i ...
- php 使用table方式导出excel文件
这些天在使用PHPExcel导出数据时,5000条数据竟然挂了.后来跟同事聊聊,有些明悟,PHPExcel做了很多处理,我在这里理解为渲染,就会暂用过多的空间,‘膨胀’的空间导致内存暂用过大,就挂了. ...
- fjwc2019 D1T1 全连(dp+树状数组)
#178. 「2019冬令营提高组」全连 显然我们可以得出一个$O(n^2)$的dp方程 记$f(i)$为取到第$i$个音符时的最大分数,枚举下一个音符的位置$j$进行转移. 蓝后我们就可以用树状数组 ...