首页 > 其他分享 >LuoguP1586 题解

LuoguP1586 题解

时间:2022-11-09 21:44:37浏览次数:80  
标签:int 题解 个数 long LuoguP1586 define

也可以在 LuoguP1586 (tencentcs.com) 获得更好的阅读体验。

Luogu_P1586 题解

一道比较简单的题目,看到求种类数,考虑 DP。

设 \(f_{i,j}\) 表示第 \(i\) 个数划分为 \(j\) 个数的平方的种类数,那么很显然的,当你从 \(i\) 中划出一个平方数 \(k^2\),那么问题相当于变成了 如何将 \(i-k^2\) 划分为 \(j-1\) 个数,于是状态转移方程就呼之欲出了:\(f_{i,j}=\sum\limits_{k=1}^{k^2\le i}f_{i-k^2,j-1}\)。

这个玩意的转移只能按照 \(k,i,j\) 的顺序枚举,不然会重复统计/漏统计一些数。边界条件很显然的是 \(f_{0,0}=1\),因为此时我们的目标已经达成了。

多测注意清空。

#include <bits/stdc++.h>
using namespace std;

#define endl '\n'
#define int long long
#define lson (p << 1)
#define rson ((p << 1) | 1)
#define mid ((l + r) >> 1)

const int MAXN = 50005;
int n, f[MAXN][5], T, ret;

signed main(void) {
    ios::sync_with_stdio(false);
    cin.tie(0);
    f[0][0] = 1;
    for (int i = 1; i * i <= 32768; ++i) {
        for (int j = i * i; j <= 32768; ++j) {
            for (int k = 1; k <= 4; ++k) f[j][k] += f[j - i * i][k - 1];
        }
    }
    cin >> T;
    while (T--) {
        cin >> n;
        for (int i = 1; i <= 4; ++i) ret += f[n][i];
        cout << ret << endl; ret = 0;
    }
    return 0;
}

标签:int,题解,个数,long,LuoguP1586,define
From: https://www.cnblogs.com/XiaoQuQu/p/16875272.html

相关文章

  • 11.7 模拟赛题解
    幸终简要题意给定一棵树,\(1\)号节点为根节点,记\(d_i\)为\(i\)号节点到根节点最短路径所经过的边数,\(mxd=max_{i=1}^nd_i\)。现在要把这棵树剖分成若干条链,每条链链......
  • 洛谷 [AGC021B] Holes 蓝 题解
    前言学校基础模拟赛的题,当时有思路但是不太会写凸包就没做,下来看了看,自己的思路大部分是正确的,有些细节没有想到,在此写篇题解。我用的是Andrew求凸包。思路答案为0......
  • 2022CSP-J题解
    2022CSP-J如期举行,<del>本人在封控区参加不了</del>,CCF收钱之后题目确实是变简单了,所以半场外人士写了一片题解,希望对各位大佬有帮助。#T1-乘方第一题往往没有**实现难......
  • 二分查找与二分答案题解
    此类题目的特征为数据量大,数据为升序或降序根本目的是通过二分法快速缩小答案范围,然后对比数据或验证答案2.1二分查找输出时注意mid是否为第一个出现的答案1#incl......
  • CF1285D Dr. Evil Underscores 题解
    给定一个序列\(a\),选取一个\(x\),使\(\max_{i=1}^na_i\oplusx\)最小。看到这种题直接按位考虑,如果最高位全是\(1\)那把\(x\)的这位全变成\(1\),如果最高位全是\(......
  • 洛谷P1605题解分析
    迷宫题目描述给定一个\(N\timesM\)方格的迷宫,迷宫里有\(T\)处障碍,障碍处不可通过。在迷宫中移动有上下左右四种方式,每次只能移动一个方格。数据保证起点上没有障......
  • CF1747 题解
    比赛链接:https://codeforces.com/contest/1747题解:AB水题//bySkyRainWind#include<cstdio>#include<vector>#include<cstring>#include<iostream>#include......
  • P1688 新单词接龙问题 题解
    大家好,我喜欢Hash,所以我用Hash通过了这道题。思路:处理方法有点类似于P6521首先我们最终接出的字符串要求其中的小字符串按字典序排序,那么我们就将所有字符串排好序......
  • 问题解决-白鹭引擎Egret Wing3修改项目内容后进行调试,项目仍显示修改前样式
    问题描述:修改前: 修改后: 解决方法:点击上方菜单栏项目-清理,进行项目清理    点击菜单栏项目-调试  重新进行调试。  调试成功后,问题成功解......
  • 问题解决-白鹭引擎Egret Wing3调试出错,输出台显示乱码而且编译终止问题Failed to load
    问题描述:Failedtoloadresource:theserverrespondedwithastatusof404()未能加载资源:服务器响应,状态为404() 解决方法:卸载引擎并重新安装,安装时使用默认路径(C......