P8599 [蓝桥杯 2013 省 B] 带分数(dfs+全排列+断点判断)

思路:1.深度枚举所有排列情况

2.设置为每个排列设置两个断点,分为三部分:a,b,c

3.转换为乘法判断条件,满足加一

代码如下:(可用next_permutation全排列函数代替dfs)

复制代码
#include<iostream>
#include<stdio.h>
using namespace std;
int ans = 0;

int visit[11] = { 0 };

int arr[11] = { 0 }, k = 0;

int tonum(int l, int r) {//将num数组的第l至r个数转为一个数
	int re = 0;
	for (int i = l; i <r; i++) {
		re = re * 10 + arr[i];
	}
	return re;
}

void dec();

void dfs();

int l = 0;

int main()
{
	
	scanf("%d", &l);
	dfs();
	cout << ans << endl;
	return 0;
}
void dfs()
{
	for (int i = 1; i <= 9; i++)
	{

		if (!visit[i])
		{
			visit[i] = 1;
			arr[k++] = i;
			dfs();
			if (k == 9)		dec();
			k--;
			visit[i] = 0;
		}
	}
}

void dec()
{
	for (int i = 1; i <= 7; i++)
	{	int a = tonum(0, i);
		for (int j = i; j <= 8; j++)
		{
			int b = tonum(i, j);
			int c = tonum(j, 9);
			if ((l - a) * c == b) {
				ans++;
			}
		}
	}
}
相关推荐
鲨鱼吃橘子18 分钟前
C++刷题--递归回溯剪枝(二)
开发语言·数据结构·c++·算法·leetcode·深度优先·剪枝
curry____30313 小时前
dfs全排列和全组合问题
算法·深度优先
仟濹16 小时前
【算法打卡day7(2026-02-12 周四)算法:BFS and BFS】10__卡码网110_字符串迁移, 11_卡码网105_有向图的完全连通
算法·深度优先·dfs·bfs·宽度优先
2501_9248787320 小时前
矩阵跃动AI口播智能体:自研语音引擎破解数字人嘴型滞后、情绪扁平、方言失真——以粤语政务短视频为例
人工智能·深度优先·动态规划·政务
沉睡的无敌雄狮20 小时前
政务AI口播落地:矩阵跃动一体机100%本地化部署与零数据出域——某省大数据局3个月验证
大数据·人工智能·深度优先·动态规划·政务
_OP_CHEN21 小时前
【算法基础篇】(六十一)SG 函数通关指南:博弈论通用解法,从原理到实战秒杀各类 ICG 游戏
算法·蓝桥杯·c/c++·博弈论·acm/icpc·sg函数·有向图游戏
阿i索1 天前
【蓝桥杯备赛Day1】——语法基础+string基础操作
蓝桥杯·打卡
Epiphany.5561 天前
蓝桥杯2024年第十五届决赛真题-套手镯
c++·算法·蓝桥杯
重生之后端学习1 天前
108. 将有序数组转换为二叉搜索树
数据结构·算法·深度优先
仟濹2 天前
【算法打卡day6 | 2026-02-11 周三 | 算法: BFS and BFS】| 8_卡码网104_建造最大岛屿 | 9_卡码网106_海岸线计算
算法·深度优先·广度优先·宽度优先