C. DNA Alignment 数学公式推导 Codeforces Round #295 (Div. 2)
来源:互联网 发布:网络交往具有什么特点 编辑:程序博客网 时间:2024/06/05 19:35
题意:给一个由A,T,C,G组成的字符串s,求使ρ(s,t)最大的t的个数。易知,t应该由字符串s中个数最多的字母组成(总数最多的字母只有一个的时候很好理解,如果有多个字母的个数相同,那么就可以将这些个数相同的字母看成一个字母,这样是等价的),求出字母个数最多的种类数x,根据排列组合,答案就是x^n
代码:
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <string>#include <map>#include <stack>#include <vector>#include <set>#include <queue>#pragma comment (linker,"/STACK:102400000,102400000")#define maxn 100005#define MAXN 2005#define mod 1000000007#define INF 0x3f3f3f3f#define pi acos(-1.0)#define eps 1e-6#define lson rt<<1,l,mid#define rson rt<<1|1,mid+1,r#define FRE(i,a,b) for(i = a; i <= b; i++)#define FRL(i,a,b) for(i = a; i < b; i++)#define mem(t, v) memset ((t) , v, sizeof(t))#define sf(n) scanf("%d", &n)#define sff(a,b) scanf("%d %d", &a, &b)#define sfff(a,b,c) scanf("%d %d %d", &a, &b, &c)#define pf printf#define DBG pf("Hi\n")typedef long long ll;using namespace std;__int64 n;char str[maxn];__int64 num[30];__int64 pow_m(__int64 a,__int64 n){ __int64 ret=1; __int64 tmp=a%mod; while (n) { if (n&1) ret=(ret*tmp)%mod; tmp=tmp*tmp%mod; n>>=1; } return ret;}int main(){ while (~scanf("%I64d",&n)) { scanf("%s",str); mem(num,0); for (__int64 i=0;i<n;i++) num[ str[i]-'A' ]++; __int64 maxx=0; for (__int64 i=0;i<26;i++) maxx=max(maxx,num[i]); __int64 m=0; for (__int64 i=0;i<26;i++) if (num[i]==maxx) m++; printf("%I64d\n",pow_m(m,n)); } return 0;}
2 0
- C. DNA Alignment 数学公式推导 Codeforces Round #295 (Div. 2)
- Codeforces Round #295 (Div. 2) C. DNA Alignment(数学)
- Codeforces Round #295 (Div. 2) C. DNA Alignment
- Codeforces Round #295 (Div. 2)-C. DNA Alignment
- Codeforces Round #295 (Div. 2) C. DNA Alignment ACM解题报告(math)
- Codeforces Round #295 (Div. 2) C. DNA Alignment(数学水题)
- Codeforces Round #295 (Div. 2)C - DNA Alignment——规律
- C. DNA Alignment(Codeforces Round #295(div2))
- Codeforces Round #295 C. DNA Alignment
- #295 (div.2) C.DNA Alignment
- Codeforces #295(Div 2) A Pangram、B Two Buttons、C DNA Alignment
- Codeforces Round #368 (Div. 2) -- C. Pythagorean Triples (数学公式)
- CodeForces 520C DNA Alignment
- CodeForces 520C DNA Alignment
- 【Codeforces】 CF 520C DNA Alignment
- Codeforces 520C. DNA Alignment 找规律
- Codeforces Round #423 (Div. 2) E. DNA Evolution(树状数组)
- Codeforces Round #364 (Div. 2) D 数学推导
- Window下利用命令行提交代码到GitHub
- 移动MM 支付SDK遇到的问题
- RPCZ中的智能指针单例
- 重置样式css(Eric Meyer的原版)
- 云计算====成本
- C. DNA Alignment 数学公式推导 Codeforces Round #295 (Div. 2)
- java中的常用类及常用方法
- 2015计划
- 1.6 与OpenGL相关的函数库
- Spark知识要点(1)
- 《编码的秘密》读后感
- arm-linux手工安装metasploit笔记
- 差分约束系统
- Linux内存管理(3) - slab分配器和kmalloc