蓝桥集训之带分数

蓝桥集训之带分数

  • 核心思想:递归 + 暴力

    • 因为就一个数 暴力就行了
    • 1 - 9全排列 然后双指针ij分割成三部分 判断条件
cpp 复制代码
  #include<iostream>
  #include<cstring>
  
  using namespace std;
  const int N = 10;
  int num[N];
  int target,res;
  bool st[N];
  
  int calc(int l,int r)  //计算一段的数值(全排列)
  {
      int cnt=0;
      for(int i=l;i<=r;i++)
      {
          cnt = cnt*10 + num[i];
      }
      return cnt;
  }
  int dfs(int u)
  {
      if(u == 9)  //全排列完成 所有数都用过了
      {
          for(int i=0;i<7;i++)  //分割三部分
          {
              for(int j=i+1;j<8;j++)
              {
                  int a = calc(0,i);
                  int b = calc(i+1,j);
                  int c = calc(j+1,8);
                  if(a * c + b == c * target) res ++;  //因为除法是整除 所以转化为加减乘
              }
          }
      }
      
      for(int i=1;i<=9;i++)  //九个数遍历一遍
      {
          if(!st[i])  //没用过
          {
              st[i] = true;
              num[u] = i;
              dfs(u+1);  //递归
              st[i] = false;  //恢复现场
          }
      }
      return res;
  }
  int main()
  {
      cin>>target;
      cout<<dfs(0)<<endl;
      return 0;
  }
相关推荐
2013092416278 小时前
1968年 Hart, Nilsson, Raphael 《最小成本路径启发式确定的形式基础》A* 算法深度研究报告
人工智能·算法
如何原谅奋力过但无声8 小时前
【力扣-Python-滑动窗口经典题】567.字符串的排列 | 424.替换后的最长重复字符 | 76.最小覆盖子串
算法·leetcode
玄冥剑尊9 小时前
贪心算法进阶
算法·贪心算法
玄冥剑尊9 小时前
贪心算法深化 I
算法·贪心算法
52Hz1189 小时前
力扣73.矩阵置零、54.螺旋矩阵、48.旋转图像
python·算法·leetcode·矩阵
BHXDML9 小时前
第一章:线性回归& 逻辑回归
算法·逻辑回归·线性回归
iAkuya10 小时前
(leetcode)力扣100 二叉搜索树种第K小的元素(中序遍历||记录子树的节点数)
算法·leetcode·职场和发展
-To be number.wan10 小时前
B 树 vs B+ 树:为什么 MySQL 用 B+ 树,而不是 B 树?
数据结构
杨间11 小时前
《排序算法全解析:从基础到优化,一文吃透八大排序!》
c语言·数据结构·排序算法
Remember_99311 小时前
【LeetCode精选算法】滑动窗口专题二
java·开发语言·数据结构·算法·leetcode