1 条题解

  • 0
    @ 2025-12-17 6:57:00

    数据比较小,dfs即可

    #include<bits/stdc++.h>
    using namespace std;
    int n,k,a[10],r[10],b[10];
    void dfs(int w)
    {
    	if(w==n+1)
    	{
    		int s=0;
    		for(int i=1;i<=n;i++)
    			s+=b[i];
    		if(s%k!=0)return;
    		for(int i=1;i<=n;i++)
    			printf("%d ",b[i]);
    		puts("");
    	}
    	for(int i=1;i<=r[w];i++)
    	{
    		b[w]=i;
    		dfs(w+1);
    	}
    	return;
    }
    int main()
    {
    	ios::sync_with_stdio(0);
    	cin.tie(0);cout.tie(0);
    	cin>>n>>k;
    	for(int i=1;i<=n;i++)cin>>r[i];
    	dfs(1);
    	return 0;
    }
    
    • 1

    信息

    ID
    7985
    时间
    2000ms
    内存
    1024MiB
    难度
    7
    标签
    递交数
    11
    已通过
    11
    上传者