C. DNA Alignment time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output
Vasya became interested in bioinformatics. He's going to write an article about similar cyclic DNA sequences, so he invented a new method for determining the similarity of cyclic sequences.
Let's assume that strings s and t have the same length n, then the function h(s,?t) is defined as the number of positions in which the respective symbols of s and t are the same. Function h(s,?t) can be used to define the function of Vasya distance ρ(s,?t):
where
is obtained from string
s, by applying left circular shift
i times. For example,
ρ("
AGC",?"
CGT")?=?
h("
AGC",?"
CGT")?+?
h("
AGC",?"
GTC")?+?
h("
AGC",?"
TCG")?+?
h("
GCA",?"
CGT")?+?
h("
GCA",?"
GTC")?+?
h("
GCA",?"
TCG")?+?
h("
CAG",?"
CGT")?+?
h("
CAG",?"
GTC")?+?
h("
CAG",?"
TCG")?=?
1?+?1?+?0?+?0?+?1?+?1?+?1?+?0?+?1?=?6
Vasya found a string s of length n on the Internet. Now he wants to count how many strings t there are such that the Vasya distance from the string s attains maximum possible value. Formally speaking, t must satisfy the equation:
.<??http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+ClZhc3lhIGNvdWxkIG5vdCB0cnkgYWxsIHBvc3NpYmxlIHN0cmluZ3MgdG8gZmluZCBhbiBhbnN3ZXIsIHNvIGhlIG5lZWRzIHlvdXIgaGVscC4gQXMgdGhlIGFuc3dlciBtYXkgYmUgdmVyeSBsYXJnZSwgY291bnQgdGhlIG51bWJlciBvZiBzdWNoIHN0cmluZ3MgbW9kdWxvIDEwOT8mIzQzOz83LjwvcD4KCgoKSW5wdXQKPHA+ClRoZSBmaXJzdCBsaW5lIG9mIHRoZSBpbnB1dCBjb250YWlucyBhIHNpbmdsZSBpbnRlZ2VyIDxlbT5uPC9lbT4gKDE/odw/PGVtPm48L2VtPj+h3D8xMDUpLjwvcD4KPHA+ClRoZSBzZWNvbmQgbGluZSBvZiB0aGUgaW5wdXQgY29udGFpbnMgYSBzaW5nbGUgc3RyaW5nIG9mIGxlbmd0aCA8ZW0+bjwvZW0+LCBjb25zaXN0aW5nIG9mIGNoYXJhY3RlcnMg"ACGT".
Output
Print a single number ― the answer modulo 109?+?7.
Sample test(s) input
1
C
output
1
input
2
AG
output
4
input
3
TTT
output
1
Note
Please note that if for two distinct strings t1 and t2 values ρ(s,?t1) и ρ(s,?t2) are maximum among all possible t, then both strings must be taken into account in the answer even if one of them can be obtained by a circular shift of another one.
In the first sample, there is ρ("C",?"C")?=?1, for the remaining strings t of length 1 the value of ρ(s,?t) is 0.
In the second sample, ρ("AG",?"AG")?=?ρ("AG",?"GA")?=?ρ("AG",?"AA")?=?ρ("AG",?"GG")?=?4.
In the third sample, ρ("TTT",?"TTT")?=?27
题意:给一个由A,T,C,G组成的字符串s,求使ρ(s,t)最大的t的个数。易知,t应该由字符串s中个数最多的字母组成(总数最多的字母只有一个的时候很好理解,如果有多个字母的个数相同,那么就可以将这些个数相同的字母看成一个字母,这样是等价的),求出字母个数最多的种类数x,根据排列组合,答案就是x^n
代码:
#include
#include
#include
#include
#include
#include
#include