A36 贪心算法 P5020 [NOIP2018 提高组] 货币系统
A36 贪心算法 P5020 [NOIP2018 提高组] 货币系统_哔哩哔哩_bilibili
P5020 [NOIP 2018 提高组] 货币系统 - 洛谷
#include<cstring> #include<iostream> #include<algorithm> using namespace std; int n,a[105],f[25005],ans; //f[j]表示j能被已知数字拼凑的方案数 int main(){ int T; scanf("%d",&T); while(T--){ scanf("%d",&n); for(int i=1; i<=n; i++) scanf("%d",&a[i]); sort(a+1,a+n+1); memset(f,0,sizeof(f)); f[0]=1; for(int i=1; i<=n; i++) for(int j=a[i];j<=a[n];j++) f[j]+=f[j-a[i]]; ans=0; for(int i=1;i<=n;i++) if(f[a[i]]==1) ans++; printf("%d\n",ans); } }
#include<cstring> #include<iostream> #include<algorithm> using namespace std; int n,a[105],f[25005],ans; int main(){ int T; scanf("%d",&T); while(T--){ scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); sort(a+1,a+n+1); memset(f,-63,sizeof f); f[0]=0; for(int i=1;i<=n;i++) for(int j=a[i];j<=a[n];j++) f[j]=max(f[j],f[j-a[i]]+1); ans=0; for(int i=1;i<=n;i++) if(f[a[i]]==1) ans++; printf("%d\n",ans); } return 0; }
 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号