AcWing 1209. 带分数(排列型枚举)
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. 带分数(排列型枚举)相关推荐
- 模版 ----- 一维指数型枚举 排列型枚举 组合型枚举
文章目录 一维指数型枚举 一.01型枚举 应用场景 递归树模型 时间复杂度 代码模版 应用 二.滑动型枚举 应用场景 递归树模型 时间复杂度 代码模版 排列型枚举 应用场景 递归树模型 时间复杂度分析 ...
- 《算法竞赛进阶指南》打卡-基本算法-AcWing 94. 递归实现排列型枚举:dfs、二进制状态压缩
文章目录 题目解答 题目来源 题目解答 分析: dfs求全排列,这里是用二进制状态压缩进行优化,二进制状态压缩,顾名思义,每个状态是用二进制的某一位表示.这里的体现是state这个状态,它的每一位代表 ...
- 递归实现排列型枚举(搜索)
题目链接 AcWing 94. 代码: #include <bits/stdc++.h>using namespace std;int a[11];int main() {int n;ci ...
- 递归实现【指数型 / 组合型 / 排列型】枚举
92. 递归实现指数型枚举 #include<bits/stdc++.h> using namespace std; const int N=20; int a[N],n; void df ...
- 递归实现指数型,排列型,组合型枚举
目录 递归实现指数型枚举 递归实现排列型枚举 递归实现组合型枚举 递归实现指数型枚举 题目 从 1∼n1∼n 这 nn 个整数中随机选取任意多个,输出所有可能的选择方案. 输入格式 输入一个整数 n ...
- Typescript - enum 枚举类型(数值型枚举 / 字符串枚举 / 常量枚举 / 异构枚举 / 计算枚举成员 / 联合枚举和枚举成员类型 / 运行时的枚举 / 环境枚举 / 对象与枚举)教程
前言 Enums(枚举)是 TypeScript 的少数功能之一,它不是 JavaScript 的类型级扩展,仅支持数字的和基于字符串的枚举. 使用枚举您可以定义一组带名字的常量,并且清晰地表达意图或 ...
- 《算法竞赛进阶指南》打卡-基本算法-AcWing 92. 递归实现指数型枚举:递推与递归、二进制状态压缩、dfs
文章目录 题目解答 题目链接 题目解答 分析: 优化:用二进制状态压缩,也就是用二进制上的位来记录数有没有被用过. ac代码 #include<bits/stdc++.h> using n ...
- [Acwing] 健康的荷斯坦奶牛 -二进制枚举
前言 传送门 : https://www.acwing.com/problem/content/description/1364/ 传送门2: https://www.acwing.com/probl ...
- AcWing 1874. 哞加密(枚举,哈希)
[题目描述] 许多人都不知道,奶牛很喜欢拼图,特别是单词拼图. 农夫约翰的奶牛最近发明了一个有趣的"单词查找器"拼图. 这种拼图的一个例子是: USOPEN OOMABO MOOM ...
最新文章
- CentOS 6.5下SSH总提示Warning: Permanently added '****' (RSA) to the list of known hosts.
- 数百个 HTML5 例子学习 HT 图形组件 – 拓扑图篇
- Android中使用HttpClient实现HTTP通信效果
- getParameter和getAttribute的区别
- android 统一错误处理,Android 程序错误处理全局处理
- Q窗口操作函数(窗口最大化,全屏,隐藏最大化最小化按钮)
- mysql编程游标取值_mysql存储过程中使用游标的实例
- react-native 报错 RawText must be wrapped in an explicit Text component
- 功能1 -- 顶部导航栏和返回顶部效果
- SIP协议错误代码code大全(中英文对照)
- 如何免费将网页内容转成Word文档
- 循环冗余校验码解法简析
- DNS中A记录和CNAME的区别 什么是CNAME
- 硬核干货 | 人脸识别的原理是什么?
- 电脑打开控制面板不显示内容
- android模拟器 菜单键,夜神安卓模拟器系统设置有哪些?
- 【单镜头反光相机】弥散圆、焦平面、景深、光圈
- antd页面多表单校验
- 自动记录电脑开关机时间
- ZY Player 2.8.3 中文版 (全网视频播放器)
热门文章
- BugkuCTF web5
- php首字母 大写 数组去重复
- python 抓取搜狗微信出现的问题,求大神解决
- SQL Server 数据库身份认证以及包含数据库
- B/S、C/S双客户类型系统研究
- 《设计模式详解》行为型模式 - 状态模式
- 双指针:JZ21调整数组顺序使奇数位于偶数前面 Offer 57. 和为s的两个数字
- 关于java中判断字符串相等==和equal 详解
- [转]Django REST framework 简介与中文教程
- ubuntu(Linux)使用losetup创建虚拟磁盘(挂载,格式化虚拟磁盘,回环设备)