蓝桥杯2013年-带分数(暴力全排列check方案数)

题目描述

100 可以表示为带分数的形式:100 = 3 + 69258 / 714。

还可以表示为:100 = 82 + 3546 / 197。

注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。

类似这样的带分数,100 有 11 种表示法。

思路

1~9的全排列大概为3e5,然后分割方案数为36种(C29),复杂度大概为1e7,能接受。

所以我们可以直接用next_permutation暴力枚举1~9的所有全排列,然后分割成三个数,符合则加上即可。

代码

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int a[10]={1,2,3,4,5,6,7,8,9};
int ned;
int get(){
    int x=0,y=0,z=0;
    int res=0;
    for(int i=0;i<7;i++){//第一个数所占的位数
        x=x*10+a[i];
        y=0;
        for(int j=i+1;j<8;j++){//第二个数所占的位数
            y=y*10+a[j];
            z=0;
            for(int k=j+1;k<9;k++){
                z=z*10+a[k];
            }
            if(y%z==0&&x+y/z==ned)res++;
            
        }
    }
    return res;
}
int main(){
    cin>>ned;
    int ans=0;
    do{
        ans+=get();
    }while(next_permutation(a,a+9));
    cout<<ans;
}
相关推荐
wuqingshun3141599 小时前
蓝桥杯 16. 外卖店优先级
c++·算法·职场和发展·蓝桥杯·深度优先
咚咚轩9 小时前
蓝桥杯11届国B 答疑
蓝桥杯·贪心
緈福的街口10 小时前
【leetcode】2900. 最长相邻不相等子序列 I
算法·leetcode·职场和发展
supingemail13 小时前
面试之 Java 新特性 一览表
java·面试·职场和发展
诸葛大钢铁16 小时前
如何免费在线PDF转换成Excel
职场和发展·pdf·excel
测试者家园18 小时前
用 VS Code / PyCharm 编写你的第一个 Python 程序
ide·vscode·python·职场和发展·零基础·pycharm·零基础学python
小羊在奋斗18 小时前
【LeetCode 热题 100】二叉树的最大深度 / 翻转二叉树 / 二叉树的直径 / 验证二叉搜索树
算法·leetcode·职场和发展
2301_7944615719 小时前
力扣-283-移动零
算法·leetcode·职场和发展
编程绿豆侠19 小时前
力扣HOT100之二叉树:98. 验证二叉搜索树
算法·leetcode·职场和发展
珂朵莉MM1 天前
2024 睿抗机器人开发者大赛CAIP-编程技能赛-专科组(国赛)解题报告 | 珂学家
开发语言·人工智能·算法·leetcode·职场和发展·深度优先·图论