Codeforces 521A DNA Alignment【贪心+思维】
来源:互联网 发布:mysql怎么创建索引 编辑:程序博客网 时间:2024/05/24 06:19
题目大意:
让你构造一个字符串,其中只包含ACGT四种元素,使得其p的值最大,p的值按照题干图示求得。
思路:
首先我们确定,要使得p的值尽可能的大 ,那么我们一定必须要让原字符串出现次数最多的字符出现次数最多。
那么:
①如果只有一种字符出现次数最多,例如:ACCCC,那么我们构造出来的串:CCCCC一定是分值最高的串。
②如果有多种字符出现次数最多且出现次数相同,那么我们对应N个位子随意分配这几种出现次数相同的字符即可,那么答案就是:
出现次数最多的字符^N。
Ac代码:
#include<stdio.h>#include<iostream>#include<string.h>using namespace std;#define MOD 1000000007#define ll __int64ll vis[5];ll cont[5];char a[100006];int main(){ int n; while(~scanf("%d",&n)) { scanf("%s",a); memset(cont,0,sizeof(cont)); memset(vis,0,sizeof(vis)); for(int i=0;i<n;i++) { if(a[i]=='A')vis[0]++; if(a[i]=='C')vis[1]++; if(a[i]=='T')vis[2]++; if(a[i]=='G')vis[3]++; } for(int i=0;i<4;i++) { if(vis[i]==0)continue; for(int j=0;j<4;j++) { if(vis[i]==vis[j])cont[i]++; } } ll maxn=0; ll contz=0; for(int i=0;i<4;i++) { if(vis[i]>maxn) { maxn=vis[i]; contz=cont[i]; } } ll output=1; for(int i=0;i<n;i++) { output*=contz; output%=MOD; } printf("%I64d\n",output); }}
0 0
- Codeforces 521A DNA Alignment【贪心+思维】
- Codeforces 521A - DNA Alignment (思维)
- Codeforces 521A DNA Alignment 规律
- CodeForces 520C DNA Alignment
- CodeForces 520C DNA Alignment
- codeforces 232A Cycles 图论 贪心 思维
- codeforces-232【A贪心、思维、图】
- Codeforces #295(Div 2) A Pangram、B Two Buttons、C DNA Alignment
- C. DNA Alignment(Codeforces Round #295(div2))
- Codeforces Round #295 C. DNA Alignment
- 【Codeforces】 CF 520C DNA Alignment
- Codeforces 520C. DNA Alignment 找规律
- DNA Alignment
- 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-337【C思维,贪心】
- 1508-张晨曦总结《2016年-11月-5日》【连续15天总结】
- Unity 双击切换目标点
- struct net_device网络设备结构体详解
- ajax
- HDU 5965 扫雷 CCPC合肥
- Codeforces 521A DNA Alignment【贪心+思维】
- 在openframeworks上显示中文
- Deep Learning algorithms with TensorFlow
- 【latex】图片插入和引用
- leetcode-83 Remove Duplicates from Sorted List
- 深入理解Java:注解(Annotation)注解处理器
- 【Android - MD】之TabLayout的使用
- [Json框架选型]Android开发中应该使用哪一种主流json框架?
- 微信小程序开发技术细节