最新公告
  • 欢迎您光临信息学奥赛网,一个优质的信息学编程题库和信息学编程学习资源专业网站。欢迎加入VIP
  • 在长凳上

    正文概述 陈老师   2026-01-20 15:16:12  

    题目描述

    一年前,LehaLeha 在公园的长凳上发现了一个由 nn 个数字组成的数组。LehaLeha 认为,如果在所有 1i<n1 ≤ i < n 的条件下,apiapi+1a_{p_i} * a_{p_{i + 1}} 不是完全平方数,那么排列 pp 就是正确的。LehaLeha 想找出 109+710^9 + 7 模的正确排列数。

    输入格式

    第一行输入数据包含一个整数 nn,表示数组长度。

    第二行包含 nn 个整数 a1,a2,...,ana_1, a_2, ... , a_n,表示数组中的每个元素。

    输出格式

    输出一个整数,表示正确的排列数量对 109+710^9 + 7 取模的结果。

    样例

    3
    1 2 4
    
    2
    
    7
    5 2 4 2 4 1 1
    
    144
    

    提示

    样例1解释

    样例1

    [1, 2, 4] - 正确的排列,因为 2 和 8 不是完全平方。

    [1, 4, 2] - 错误的排列,因为 4 是 2 的平方。

    [2, 1, 4] - 错误的排列,因为 4 是 2 的平方。

    [2, 4, 1] - 错误的排列,因为 4 是 2 的平方。

    [4, 1, 2] - 错误的排列,因为 4 是 2 的平方。

    [4, 2, 1] - 正确的排列,因为 8 和 2 不是完全平方。

    数据范围

    1n3001 \le n \le 3001ai1091 \le a_i \le 10^9

    信息学奥赛网,一个优质的信息学奥赛学习资源平台!
    信息学奥赛网 » 在长凳上