AtCoder Grand Contest 020 C - Median Sum (背包问题+bitset )
2018-01-19 20:05
417 查看
Time limit : 2sec / Memory limit : 512MB
Score : 700 points
You are given N integers A1, A2,
..., AN.
Consider the sums of all non-empty subsequences of A.
There are 2N−1 such
sums, an odd number.
Let the list of these sums in non-decreasing order be S1, S2,
..., S2N−1.
Find the median of this list, S2N−1.
1≤N≤2000
1≤Ai≤2000
All input values are integers.
Input is given from Standard Input in the following format:
Print the median of the sorted list of the sums of all non-empty subsequences of A.
Copy
Copy
In this case, S=(1,1,2,2,3,3,4).
Its median is S4=2.
Copy
Copy
In this case, S=(58).
题意:序列构成的子集加起来然后求出中位数
思路:背包问题+bitset
Score : 700 points
Problem Statement
You are given N integers A1, A2,..., AN.
Consider the sums of all non-empty subsequences of A.
There are 2N−1 such
sums, an odd number.
Let the list of these sums in non-decreasing order be S1, S2,
..., S2N−1.
Find the median of this list, S2N−1.
Constraints
1≤N≤20001≤Ai≤2000
All input values are integers.
Input
Input is given from Standard Input in the following format:N A1 A2 … AN
Output
Print the median of the sorted list of the sums of all non-empty subsequences of A.
Sample Input 1
Copy3 1 2 1
Sample Output 1
Copy2
In this case, S=(1,1,2,2,3,3,4).
Its median is S4=2.
Sample Input 2
Copy1 58
Sample Output 2
Copy58
In this case, S=(58).
题意:序列构成的子集加起来然后求出中位数
思路:背包问题+bitset
#include <iostream> #include <cstdio> #include <map> #include <cstring> #include <string> #include <algorithm> #include <cmath> #include <set> #include <bitset> const int N = 100005; using namespace std; typedef long long ll; int a ; int n; bitset<4000010> f; int main() { int i,j,k=0; scanf("%d",&n); f[0]=1; for(i=1;i<=n;i++) //得到n个数构成的集合f,有则为1,无则为0 { scanf("%d",&j); f=f|(f<<j); k+=j; //printf("%d\n",f); } /*for(int i=1;i<=k;i++) { if(f[i]==0) printf("0\n"); else printf("1\n"); }*/ for(i=(k+1)/2;!f[i];i++);//从总值的一半开始找 printf("%d\n",i); return 0; }
相关文章推荐
- AtCoder Grand Contest 020 C - Median Sum (背包问题+bitset )
- AtCoder Grand Contest 020 C - Median Sum (背包问题+bitset )
- AtCoder Grand Contest 020 C - Median Sum (背包问题+bitset )
- AtCoder Grand Contest 020 C - Median Sum (背包问题+bitset )
- AtCoder Grand Contest 020 C - Median Sum (背包问题+bitset )
- AtCoder Grand Contest 020 C - Median Sum (背包问题+bitset )
- AtCoder Grand Contest 020 C - Median Sum (背包问题+bitset )
- AtCoder Grand Contest 020 C - Median Sum(背包+bitset)
- AtCoder Grand Contest 020 D - Min Max Repetition
- AtCoder3857:Median Sum (Bitset优化背包&&对称性求中位数)
- AtCoder Grand Contest 020 B - Ice Rink Game(贪心+计算机乘法)
- AtCoder Grand Contest 020 B - Ice Rink Game(贪心+计算机乘法)
- AtCoder Grand Contest 020 B - Ice Rink Game(贪心+计算机乘法)
- AtCoder Grand Contest 020 B - Ice Rink Game(贪心+计算机乘法)
- AtCoder Grand Contest 020 B - Ice Rink Game(贪心+计算机乘法)
- AtCoder Grand Contest 020 B - Ice Rink Game
- AtCoder Grand Contest 020 B - Ice Rink Game(贪心+计算机乘法)
- AtCoder Grand Contest 020 B - Ice Rink Game(贪心+计算机乘法)
- AtCoder Grand Contest 020 B - Ice Rink Game(贪心+计算机乘法)
- Atcoder Grand Contest 011F - Train Service Planning