lanqiao OJ 1388 寒假作业

简介: lanqiao OJ 1388 寒假作业

1.寒假作业 - 蓝桥云课 (lanqiao.cn)

全排列问题,没什么好说的,主要是用了剪枝优化 , 对于前面的条件就不符合的排列,没有必要往下排了 , 所以直接return跳出函数就行了

#include<iostream>
#include<cstring>
#include<algorithm>
 
using namespace std ;
int a[20] = {1,2,3,4,5,6,7,8,9,10,11,12,13} ;
int b[20];
bool v[20] ;
int ans = 0;
void dfs(int u ){
  if(u == 12) {//满了就输出
    if(b[9] * b[11] == b[10]) ans++ ;
    else return ;
  }
  if(u == 3 && b[0] + b[1] != b[2]) return ;//剪枝,进行优化
  if(u == 6 && b[3] - b[4] != b[5]) return ;
  if(u == 9 && b[6] * b[7] != b[8]) return ;
  
  for(int i = 0 ; i < 13 ; i ++){//1-13 开始遍历
    if(!v[i]){
      v[i] = true ;
      b[u] = a[i] ;
      dfs(u + 1) ;
      v[i] = false ; 
    }
  }
}
 
int main(){
  dfs(0) ;
  cout << ans << endl;
  return 0 ;  
}
目录
相关文章
|
3天前
lanqiao OJ 1030 蓝肽子序列
lanqiao OJ 1030 蓝肽子序列
13 2
|
3天前
lanqiao OJ 689 四阶幻方
lanqiao OJ 689 四阶幻方
10 0
|
3天前
lanqiao OJ 389 摆花
lanqiao OJ 389 摆花
8 2
|
3天前
lanqiao OJ 364 跳石头
lanqiao OJ 364 跳石头
18 6
|
3天前
lanqiao OJ 649 算式900
lanqiao OJ 649 算式900
10 1
|
3天前
lanqiao OJ 108 发现环
lanqiao OJ 108 发现环
8 1
|
3天前
lanqiao OJ 525 传球游戏
lanqiao OJ 525 传球游戏
11 2
|
1天前
lanqiao oj 1050 补给
lanqiao oj 1050 补给
8 0
|
1天前
lanqiao oj 1085 小猪存钱罐
lanqiao oj 1085 小猪存钱罐
6 0
|
2天前
lanqiao OJ 1591 “123”
lanqiao OJ 1591 “123”
9 0