AT_abc324_d.[ABC324D] Square Permutation

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定一个仅由数字组成、长度为 NN 的字符串 SS。

请计算,将 SS 的各位数字重新排列后,能组成多少个十进制整数,使得这些整数是完全平方数。

更严格地说,定义 SS 的第 ii 位数字为 sis_i(1≤i≤N1\leq i\leq N)。

对于 (1,…,N)(1,\ldots,N) 的任意一个排列 P=(p1,p2,…,pN)P=(p_1,p_2,\ldots,p_N),可以表示出一个整数 ∑i=1Nspi10N−i\displaystyle\sum_{i=1}^N s_{p_i}10^{N-i}。请计算,在所有可能的排列中,有多少个不同的整数是完全平方数。

输入格式

输入从标准输入中给出,格式如下:

NN SS

输出格式

请输出一个整数,表示满足条件的不同完全平方数的个数。

输入输出样例

  • 输入#1

    4
    4320

    输出#1

    2
  • 输入#2

    3
    010

    输出#2

    2
  • 输入#3

    13
    8694027811503

    输出#3

    840

说明/提示

限制条件

  • 1≤N≤131\leq N\leq 13
  • SS 是长度为 NN 的仅由数字组成的字符串
  • NN 是整数

样例解释 1

当 P=(4,2,3,1)P=(4,2,3,1) 时,有 s4×103+s2×102+s3×101+s1=324=182s_4\times10^3+s_2\times10^2+s_3\times10^1+s_1=324=18^2。
当 P=(3,2,4,1)P=(3,2,4,1) 时,有 s3×103+s2×102+s4×101+s1=2304=482s_3\times10^3+s_2\times10^2+s_4\times10^1+s_1=2304=48^2。
除此之外,没有其他排列能得到完全平方数,因此输出 22。

样例解释 2

当 P=(1,3,2)P=(1,3,2) 或 P=(3,1,2)P=(3,1,2) 时,有 ∑i=1Nspi10N−i=1=12\displaystyle\sum_{i=1}^N s_{p_i}10^{N-i}=1=1^2。
当 P=(2,1,3)P=(2,1,3) 或 P=(2,3,1)P=(2,3,1) 时,有 ∑i=1Nspi10N−i=100=102\displaystyle\sum_{i=1}^N s_{p_i}10^{N-i}=100=10^2。
除此之外,没有其他排列能得到完全平方数,因此输出 22。
请注意,如果不同的排列得到相同的数,只计为 11 个。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页