《P11246 [GESP202409 六级] 小杨和整数拆分》

题目背景

对应的选择、判断题:试题 - GESP 202409 C++ 六级 - 洛谷有题

题目描述

小杨有一个正整数 n,小杨想将它拆分成若干完全平方数的和,同时小杨希望拆分的数量越少越好。

编程计算总和为 n 的完全平方数的最小数量。

输入格式

输入只有一行一个正整数 n。

输出格式

输出一行一个整数表示答案。

输入输出样例

输入 #1复制

复制代码
18

输出 #1复制

复制代码
2

说明/提示

数据规模与约定

对全部的测试数据,保证 1≤n≤105。

代码实现:

cpp 复制代码
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
const int MAXN = 100005;
const int INF = 1e9;

int dp[MAXN];

int main()
{
    int n;
    cin >> n;
    for(int i = 1; i <= n; i++) dp[i] = INF;
    dp[0] = 0;
    for(int i = 1; i * i <= n; i++)
    {
        int sq = i * i;
        for(int j = sq; j <= n; j++)
        {
            dp[j] = min(dp[j], dp[j - sq] + 1);
        }
    }
    cout << dp[n] << endl;
    return 0;
}
相关推荐
实验如有神祝女士15 小时前
不同参数规模大模型在医学翻译场景的适配差异
论文阅读·人工智能·深度学习·学习·算法·语言模型·论文笔记
windliang15 小时前
Claude Code 源码分析(三):一次模型回答如何流进 Agent
前端·算法·ai编程
Kyrie_kk17 小时前
Java--BigInteger 超大整数计算
java·算法
汽车网络安全爱好者17 小时前
Public Key Infrastructure(二)— 深入理解 X.509 证书:从 RFC 5280 到 OpenSSL 实践
运维·服务器·算法·网络安全·汽车·密码学·可信计算技术
tkevinjd17 小时前
力扣131-分割回文串
算法·leetcode·深度优先
BioRunYiXue18 小时前
技术干货 | LiP-MS全流程解析:从实验设计到数据分析
大数据·前端·javascript·人工智能·算法·数据挖掘·数据分析
湿滑路面18 小时前
VideoPipe中集成多模态大模型做视频(图片)分析
人工智能·算法·音视频
井川廊咏19 小时前
使用typedef封装函数指针新类型
算法
fīɡЙtīиɡ ℡19 小时前
分布式ID生成策略
java·分布式·算法