1 条题解

  • 1
    @ 2026-4-3 11:03:49

    一眼背包板子题(我绝对不会告诉你这道题可以暴力,而且比背包跑得快)

    O(nw)O(nw) 都比 O(n3)O(n^3) 慢吗……

    为什么 NN 这么小而 WW 这么大呀?! 还好代码比暴力短

    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e6+10;
    int ans,f[N];
    int main()
    {
    	int n,w;scanf("%d%d",&n,&w);
    	for(int i=1;i<=w;i++)f[i]=N;
    	for(int i=1,x;i<=n;i++)
    	{
    		scanf("%d",&x);
    		for(int j=w;j>=x;j--)
    			f[j]=min(f[j],f[j-x]+1);
    	}
    	for(int i=1;i<=w;i++)
    		ans+=(f[i]&&f[i]<=3);
    	printf("%d\n",ans);return 0;
    }
    
    • 1

    信息

    ID
    9901
    时间
    2000ms
    内存
    1024MiB
    难度
    5
    标签
    递交数
    38
    已通过
    17
    上传者