洛谷 P2347 砝码称重 题解

时间:2023-03-10 07:14:39
洛谷 P2347 砝码称重 题解

每日一题 day12 打卡

Analysis

完全背包

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define maxn 1000+10
using namespace std;
inline int read()
{
int x=;
bool f=;
char c=getchar();
for(; !isdigit(c); c=getchar()) if(c=='-') f=;
for(; isdigit(c); c=getchar()) x=(x<<)+(x<<)+c-'';
if(f) return x;
return -x;
}
inline void write(long long x)
{
if(x<){putchar('-');x=-x;}
if(x>)write(x/);
putchar(x%+'');
}
int weight[]={,,,,,,},a[],dp[maxn];
int ans;
int main()
{
for(int i=;i<=;i++) a[i]=read();
dp[]=;
for(int i=;i<=;i++)
for(int j=;j<=a[i];j++)
for(int k=;k>=;k--)
{
if(dp[k]==) dp[k+weight[i]]=;
}
for(int i=;i<=;i++) if(dp[i]==) ans++;
printf("Total=");
write(ans);
return ;
}

请各位大佬斧正(反正我不认识斧正是什么意思)