dfs加剪枝都过了??
查看原帖
dfs加剪枝都过了??
835026
pengzhongjie楼主2023/8/23 21:15

#include using namespace std; int cnt=0; int n,r; int put[15]; void dfs(int p,int sheng) {

if(p>n)
{
    cnt++;
    return;
}
for(int i=1;i<=r;i++)
{
    put[i]++;
    if(put[i]==1)sheng--;
    if(sheng>n-p){
        put[i]--;
        if(put[i]==0)sheng++;
        continue;
    }
    dfs(p+1,sheng);
    put[i]--;
    if(put[i]==0)sheng++;
}

} int main() {

cin>>n>>r;
dfs(1,r);
cout<<cnt;
return 0;

} 最高977ms,这是dfs能过的题?(蒟蒻弱弱的疑问)

2023/8/23 21:15
加载中...