蓝桥 凑平方数 (我依旧很菜)

简介: 蓝桥 凑平方数 (我依旧很菜)

把0~9这10个数字,分成多个组,每个组恰好是一个平方数,这是能够办到的。
比如:0, 36, 5948721

再比如:
1098524736
1, 25, 6390784
0, 4, 289, 15376
等等...

注意,0可以作为独立的数字,但不能作为多位数字的开始。
分组时,必须用完所有的数字,不能重复,不能遗漏。

如果不计较小组内数据的先后顺序,请问有多少种不同的分组方案?


其实一开始i想到了要用next_permutation和dfs,但是具体的思路想不通。
看了学长的代码才会做。记录一下。

#include<cstdio>
#include<cmath>
#include<string>
#include<vector>
#include<set>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;

int a[20]={
   0,1,2,3,4,5,6,7,8,9};
set<string> st;
bool judge(ll x){
   
    if(!x)    return 1;
    ll tmp = (ll)sqrt(x);
    return tmp*tmp == x;
}
void dfs(int pos, vector<ll> v){
   
    if(pos == 10){
   
        sort(v.begin(),v.end());
        string ans="";
        for(int i=0; i<v.size(); i++){
   
            char t[32];
            sprintf(t, "%lld", v[i]);
            ans = ans +" "+t;
        }
        //cout<<ans<<endl;
        st.insert(ans);
        return;
    }
    ll tmp=0;
    if(a[pos]==0){
   
        v.push_back(0);
        dfs(pos+1,v);
    }else{
   
        for(int i=pos; i<=9; i++){
   
            tmp = tmp*10+a[i];
            if(judge(tmp)){
   
                v.push_back(tmp);
                dfs(i+1, v);
                v.pop_back();
            }
        }
    }
}
int main(){
   
    do{
   
        vector<ll> v;
        v.clear();
        dfs(0, v);
    }while(next_permutation(a, a+10));
    printf("%d\n", st.size());
    return 0;
}
相关文章
|
5月前
|
存储 人工智能 缓存
AI 智能体的开发技术
AI智能体是具备感知、思考、规划与执行闭环的真正自主系统,远超简单问答。其开发需融合五大核心技术:智能体编排框架(如LangGraph、CrewAI)、工具调用与安全沙盒、记忆存储(向量库+检查点)、大模型托管平台及可观测性调试工具,实现企业级可靠落地。(239字)
|
5月前
|
JavaScript Linux 数据安全/隐私保护
环境变量配置法:通过 HTTP_PROXY 让OpenClaw走代理的最佳实践
本文详解OpenClaw配置站大爷隧道代理的终极方案:摒弃易出错的YAML配置,推荐100%稳定的环境变量法(HTTP_PROXY/HTTPS_PROXY)。该方案绕过OpenClaw自研代理解析缺陷,原生兼容Node.js,一次设置、跨平台生效,彻底解决连接拒绝、协议混淆、配置失效等顽疾。
419 0
|
7月前
|
人工智能 安全 开发工具
开发者效率神器|OpenClaw 本地AI一键部署,无需Python/命令行(Win11适配)
OpenClaw(小龙虾)是GitHub星标28W+的开源本地AI智能体,专为Windows 11优化,支持一键部署、零代码、全离线运行。无需联网、数据不出设备,可自动完成文件整理、浏览器操控、办公自动化等任务,10分钟轻松上手,开发者隐私与效率兼得。(239字)
859 0
|
存储 数据采集 数据管理
116_大规模预训练数据管理与质量控制机制
在2025年的大语言模型(LLM)训练领域,数据管理和质量控制已成为决定模型性能上限的关键因素。随着模型规模的不断扩大(从早期的数十亿参数到如今的数千亿参数),对训练数据的数量、多样性和质量要求也呈指数级增长。一个高效的数据管理系统和严格的质量控制机制,不仅能够确保训练过程的稳定性,还能显著提升最终模型的性能和安全性。
1086 2
CPU的工作原理基于其内部结构,通过执行指令来完成各种任务
CPU的工作原理基于其内部结构,通过执行指令来完成各种任务
777 3
|
机器学习/深度学习 算法 Python
【分布鲁棒】基于Wasserstein距离的两阶段分布鲁棒简易模型【对偶转化】【线性决策】(Matlab代码实现)
【分布鲁棒】基于Wasserstein距离的两阶段分布鲁棒简易模型【对偶转化】【线性决策】(Matlab代码实现)
757 0
基于DSP的数字滤波器设计
基于DSP的数字滤波器设计
726 4
|
Java Linux iOS开发
窗口命令怎么查看正在运行的jar包并杀死该进程
窗口命令怎么查看正在运行的jar包并杀死该进程
1894 0
|
自然语言处理 数据挖掘 API
淘宝直播间弹幕 API 接口(淘宝 API 系列)
淘宝直播间弹幕API助力电商直播数据分析与优化。通过实时获取弹幕信息(昵称、内容、时间、类型),商家可精准把握消费者需求,优化直播内容;开发者可构建数据分析工具和智能客服系统。接口采用WebSocket协议,支持全双工通信,确保数据实时性。请求需包含直播间ID(room_id),并遵循平台使用规范。示例代码展示了Python调用方法,需安装`websocket-client`库并处理重连与异常。
1464 6

热门文章

最新文章