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 ;  
}
目录
相关文章
|
1月前
lanqiao OJ 22年省赛 扫雷
lanqiao OJ 22年省赛 扫雷
29 1
|
1月前
lanqiao OJ 389 摆花
lanqiao OJ 389 摆花
15 2
|
1月前
lanqiao OJ 364 跳石头
lanqiao OJ 364 跳石头
33 6
|
1月前
lanqiao OJ 229 迷宫与陷阱
lanqiao OJ 229 迷宫与陷阱
22 1
|
1月前
|
机器学习/深度学习 算法 C++
Leetcode第51题(N皇后)
这篇文章介绍了解决LeetCode第51题N皇后问题的C++深度优先搜索(DFS)算法实现,包括详细的代码和解题思路。
16 0
Leetcode第51题(N皇后)
|
29天前
lanqiao oj Frog
lanqiao oj Frog
20 0
|
30天前
lanqiao oj 1050 补给
lanqiao oj 1050 补给
34 0
|
30天前
lanqiao oj 1085 小猪存钱罐
lanqiao oj 1085 小猪存钱罐
25 0
|
1月前
lanqiao OJ 1591 “123”
lanqiao OJ 1591 “123”
25 0
|
1月前
lanqiao OJ 1217 求立方根
lanqiao OJ 1217 求立方根
12 0