update
This commit is contained in:
parent
9084dd9b7e
commit
af7c5ee26b
55
src/P5020/P5020.cpp
Normal file
55
src/P5020/P5020.cpp
Normal file
@ -0,0 +1,55 @@
|
||||
#include <bitset>
|
||||
#include <cstring>
|
||||
#include <iostream>
|
||||
#include <algorithm>
|
||||
|
||||
using ll = long long;
|
||||
|
||||
struct ReadLL{
|
||||
char c;
|
||||
ll w,n;
|
||||
ReadLL&operator>>(ll &num){
|
||||
c=0,w=1,n=0;
|
||||
while(!isdigit(c)){
|
||||
if(c=='-')w=-1;
|
||||
c=getchar();
|
||||
}
|
||||
while(isdigit(c)){
|
||||
n=n*10+c-'0';
|
||||
c=getchar();
|
||||
}
|
||||
num=n*w;
|
||||
return *this;
|
||||
}
|
||||
}readll;
|
||||
|
||||
auto &is = readll;
|
||||
auto &os = std::cout;
|
||||
|
||||
const ll max_n{100+5},max_a=2.5e4+5;
|
||||
ll t, n, a[max_n], ans;
|
||||
std::bitset<max_a> dp;
|
||||
|
||||
int main(){
|
||||
is>>t;
|
||||
for(ll _{0};_<t;_++){
|
||||
is>>n;
|
||||
ans=n;
|
||||
for(ll i{1};i<=n;i++){
|
||||
is>>a[i];
|
||||
}
|
||||
std::sort(a+1,a+n+1);
|
||||
dp.reset();
|
||||
dp[0]=1;
|
||||
for(ll i{1};i<=n;i++){
|
||||
if(dp[a[i]]){
|
||||
ans--;
|
||||
continue;
|
||||
}
|
||||
for(ll j{a[i]};j<=a[n];j++){
|
||||
dp[j]=dp[j]||dp[j-a[i]];
|
||||
}
|
||||
}
|
||||
os<<ans<<'\n';
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user