ZZULIOJ 1432 背包again【思维】好像这个题是沉题丫
来源:互联网 发布:JAVA string类型去空格 编辑:程序博客网 时间:2024/05/22 16:01
1432: 背包again
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 232 Solved: 68
SubmitStatusWeb Board
Description
Gy最近学习了01背包问题,无聊的他又想到了一个新的问题,给定n个物品的价值,和01背包一样,每个物品只能选1次或0次,求最小不能被得到的价值。
Input
第一行一个正整数T(T <= 100),表示有T组数据。
每组数据输入格式如下:
第一行为一个正整数N(N<=100),表示物品个数。
第二行N个正整数,表示每个物品的价值vi(1<=vi<=1000000)
Output
共输出T行,即每组数据相应答案。
Sample Input
2
3
2 4 8
4
1 2 4 8
Sample Output
1
16
思路:
界定现在我们能够组成区间【1,now】的价值,那么对应我们如果多出来一个值x.若x>now+1.那么很明显这个值x是没有意义的,就是说这个值x的选择或者不选择都不能使得区间连续起来。
那么相反,如果x<=now+1.那么我们现在能够组成的区间的价值就能够变化为:【1,now】-------------->【1,now+x】;
可能炸一看这个道理好像理解不通 ,大家不妨手写一下几种情况,就不难自己证明出来了。
Ac代码:
#include<stdio.h>#include<algorithm>#include<string.h>using namespace std;int a[150];int main(){ int t; scanf("%d",&t); while(t--) { int n; scanf("%d",&n); for(int i=0;i<n;i++)scanf("%d",&a[i]); sort(a,a+n); int now=1; for(int i=0;i<n;i++) { if(a[i]-1<now)now+=a[i]; } printf("%d\n",now); }}
阅读全文
0 0
- ZZULIOJ 1432 背包again【思维】好像这个题是沉题丫
- ZZULIOJ 1432: 背包again <类似进制问题>
- zzulioj-1917-E【思维】
- 背包again
- zzulioj 1898 (数学+思维)
- zzulioj-1959-数组最大值【思维】
- zzulioj-1962-翻杯子【思维】
- zzulioj--1842--LT的求助again and again(模拟||LIS)
- 1248 寒冰王座 换个思维来解决这个背包题目
- IPersistStreamInit这个接口好像不支持框架
- zzulioj 1898: 985的数字难题 [思维]
- zzulioj-1961-取硬币【思维】【贪心】
- zzulioj-1965-Big Prize【思维】【数学组合】
- ZZULIOJ 2133 密室逃脱【思维+字典树】
- ZZULIOJ 1426: 字典树again【字典树+bfs】
- zzulioj 1842: LT的求助again and again (简单模拟)
- 【作者思维特点和我好像】动态规划与排列组合
- 帮我看看这个程序吧,好像问题很多呀
- 练习13
- 海外SDK之----------谷歌登录
- Android 点击事件常用写法
- swing 表格模型增加删除行和列
- poj2406 power strings
- ZZULIOJ 1432 背包again【思维】好像这个题是沉题丫
- 练习14
- 练习15
- USACO Section1.2 Transformations
- USACO之Section1.2.5 Dual Palindromes[回文数]
- 练习16
- 练习17
- java8(2) stream
- Android标题栏渐变色,沉寂式状态栏