Alice 有 n 个字符,它们都是英文小写字母,从 1∼n 编号,分别为 c1,c2,…,cn。
Bob 准备将这些字符重新排列,组成一个字符串 S。Bob 知道 Alice 有强迫症,所以他打算将 S 组成一个非回文串来折磨 Alice。
现在 Bob 想知道他共有多少种不同的排列字符的方案,能使得 S 是个非回文串。一种排列字符的方案指的是一个 1∼n 的排列 pi,它所组成的 S=cp1cp2…cpn。
一个字符串是非回文串,当且仅当它的逆序串与原串不同。例如 abcda 的逆序串为 adcba,与原串不同,故 abcda 是非回文串。而 abcba 的逆序串与原串相同,是回文串。
由于最后的结果可能很大,你只需要告诉 Bob 总方案数对 109+7 取模后的值。
第一行一个正整数 n 表示字符个数。
第二行 n 个英文小写字母 ci。
仅一行一个整数表示答案。答案对 109+7 取模。
3 aba
4
8 aabbbbcc
39168
【数据范围】
对于 20% 的数据,n≤8;
对于 50% 的数据,n≤20;
另有 30% 的数据,字符只包含 a 和 b;
对于 100% 的数据,3≤n≤2000。