1209. 带分数

题意:
  • 以n=a+bcn=a+\frac{b}{c}n=a+cb​的形式表示一个整数
  • 其中a、b、c的每一位数字包含完1~9且不重复
思路:
  • 暴力枚举出9个数的全排列,然后用一个数组保存(全排列搜索模型)
  • 从全排列的结果中用两重循环暴力分解出三段,每段代表一个数
  • 验证枚举出来的三个数是否满足题干条件,若满足则计数
public class Main {Scanner s = new Scanner(System.in);// 输入数int n;// 用来存全排列数int[] nums;// 用来判断哪些数使用过boolean[] used;int a, b, c;// 计数int cnt;public void run() {n = s.nextInt();nums = new int[10];used = new boolean[10];dfs(1);System.out.println(cnt);}public void dfs(int i) {// 边界if (i > 9) {// 对每一种排列进行枚举分段for (int x = 1; x <= 7; x++) {for (int y = x + 1; y <= 8; y++) {a = subNums(1, x);b = subNums(x + 1, y);c = subNums(y + 1, 9);// 对符合条件对数进行计数if (n * c == a * c + b) cnt++;}}return;}// 全排列搜索模型for (int k = 1; k <= 9; k++) {if (!used[k]) {nums[i] = k;used[k] = true;dfs(i + 1);nums[i] = 0;used[k] = false;}}}// 求每一段的数字private int subNums(int l, int r) {int num = 0;for (int i = l; i <= r; i++) {num = num * 10 + nums[i];}return num;}public static void main(String[] args) {new Main().run();}
}

AcWing 1209. 带分数(排列型枚举)相关推荐

  1. 模版 ----- 一维指数型枚举 排列型枚举 组合型枚举

    文章目录 一维指数型枚举 一.01型枚举 应用场景 递归树模型 时间复杂度 代码模版 应用 二.滑动型枚举 应用场景 递归树模型 时间复杂度 代码模版 排列型枚举 应用场景 递归树模型 时间复杂度分析 ...

  2. 《算法竞赛进阶指南》打卡-基本算法-AcWing 94. 递归实现排列型枚举:dfs、二进制状态压缩

    文章目录 题目解答 题目来源 题目解答 分析: dfs求全排列,这里是用二进制状态压缩进行优化,二进制状态压缩,顾名思义,每个状态是用二进制的某一位表示.这里的体现是state这个状态,它的每一位代表 ...

  3. 递归实现排列型枚举(搜索)

    题目链接 AcWing 94. 代码: #include <bits/stdc++.h>using namespace std;int a[11];int main() {int n;ci ...

  4. 递归实现【指数型 / 组合型 / 排列型】枚举

    92. 递归实现指数型枚举 #include<bits/stdc++.h> using namespace std; const int N=20; int a[N],n; void df ...

  5. 递归实现指数型,排列型,组合型枚举

    目录 递归实现指数型枚举 递归实现排列型枚举 递归实现组合型枚举 递归实现指数型枚举  题目 从 1∼n1∼n 这 nn 个整数中随机选取任意多个,输出所有可能的选择方案. 输入格式 输入一个整数 n ...

  6. Typescript - enum 枚举类型(数值型枚举 / 字符串枚举 / 常量枚举 / 异构枚举 / 计算枚举成员 / 联合枚举和枚举成员类型 / 运行时的枚举 / 环境枚举 / 对象与枚举)教程

    前言 Enums(枚举)是 TypeScript 的少数功能之一,它不是 JavaScript 的类型级扩展,仅支持数字的和基于字符串的枚举. 使用枚举您可以定义一组带名字的常量,并且清晰地表达意图或 ...

  7. 《算法竞赛进阶指南》打卡-基本算法-AcWing 92. 递归实现指数型枚举:递推与递归、二进制状态压缩、dfs

    文章目录 题目解答 题目链接 题目解答 分析: 优化:用二进制状态压缩,也就是用二进制上的位来记录数有没有被用过. ac代码 #include<bits/stdc++.h> using n ...

  8. [Acwing] 健康的荷斯坦奶牛 -二进制枚举

    前言 传送门 : https://www.acwing.com/problem/content/description/1364/ 传送门2: https://www.acwing.com/probl ...

  9. AcWing 1874. 哞加密(枚举,哈希)

    [题目描述] 许多人都不知道,奶牛很喜欢拼图,特别是单词拼图. 农夫约翰的奶牛最近发明了一个有趣的"单词查找器"拼图. 这种拼图的一个例子是: USOPEN OOMABO MOOM ...

最新文章

  1. CentOS 6.5下SSH总提示Warning: Permanently added '****' (RSA) to the list of known hosts.
  2. 数百个 HTML5 例子学习 HT 图形组件 – 拓扑图篇
  3. Android中使用HttpClient实现HTTP通信效果
  4. getParameter和getAttribute的区别
  5. android 统一错误处理,Android 程序错误处理全局处理
  6. Q窗口操作函数(窗口最大化,全屏,隐藏最大化最小化按钮)
  7. mysql编程游标取值_mysql存储过程中使用游标的实例
  8. react-native 报错 RawText must be wrapped in an explicit Text component
  9. 功能1 -- 顶部导航栏和返回顶部效果
  10. SIP协议错误代码code大全(中英文对照)
  11. 如何免费将网页内容转成Word文档
  12. 循环冗余校验码解法简析
  13. DNS中A记录和CNAME的区别 什么是CNAME
  14. 硬核干货 | 人脸识别的原理是什么?
  15. 电脑打开控制面板不显示内容
  16. android模拟器 菜单键,夜神安卓模拟器系统设置有哪些?
  17. 【单镜头反光相机】弥散圆、焦平面、景深、光圈
  18. antd页面多表单校验
  19. 自动记录电脑开关机时间
  20. ZY Player 2.8.3 中文版 (全网视频播放器)

热门文章

  1. BugkuCTF web5
  2. php首字母 大写 数组去重复
  3. python 抓取搜狗微信出现的问题,求大神解决
  4. SQL Server 数据库身份认证以及包含数据库
  5. B/S、C/S双客户类型系统研究
  6. 《设计模式详解》行为型模式 - 状态模式
  7. 双指针:JZ21调整数组顺序使奇数位于偶数前面 Offer 57. 和为s的两个数字
  8. 关于java中判断字符串相等==和equal 详解
  9. [转]Django REST framework 简介与中文教程
  10. ubuntu(Linux)使用losetup创建虚拟磁盘(挂载,格式化虚拟磁盘,回环设备)