题目来源:
3417. 砝码称重 - AcWing题库
题目描述:
你有一架天平和N个砝码,这N个砝码重量依次是W1,W2,,WN。
请你计算一共可以称出多少种不同的正整数重量?
注意砝码可以放在天平两边。
输入格式:
输入的第一行包含一个整数 N。
第二行包含 N 个整数:W1,W2,W3,⋅⋅⋅,WN。
输出格式:
输出一个整数代表答案。
数据范围:
对于所有评测用例,1≤N≤1001≤N≤100,NN 个砝码总重不超过 105105。
输入输出样例:
输入:
3
1 4 6
输出:
10
下面是AC代码;
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e2+5;
const int maxm=1e5+5;
int g[maxn];
bitset<maxm> s;
int n;
int main() {
cin>>n;
for(int i=0; i<n; i++) cin>>g[i];
s[0]=1;
for(int i=0; i<n; i++) s|=s<<g[i];
for(int i=0; i<n; i++) s|=s>>g[i];
cout<<s.count()-1<<endl;
return 0;
}
好好AC,拒绝WA
AcWing 3417砝码称重问题及代码
458

被折叠的 条评论
为什么被折叠?



