| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:优化逆序数计算后认为本题瓶颈不在逆序数上,另外请0MS的提供一下经验In Reply To:Re:优化逆序数计算后认为本题瓶颈不在逆序数上,另外请0MS的提供一下经验 Posted by:scu_sadan at 2010-09-16 10:03:27 我的是零秒,不过觉得写的还是很冗余,姑且抛砖引玉吧。
#include<stdio.h>
#define LINE 1000
#define MAXC 51
int main()
{
int n = 0;
int m = 0;
int i = 0;
int j = 0;
int k = 0;
int sum[LINE] = {0};
char dna[LINE][MAXC] = {'\0'};
int assist[26] = {0};
scanf("%d%d" , &n , &m);
for(i=0 ; i<m ; i++)
scanf("%s" , dna[i]);
for(i=0 ; i<m ; i++)
{
assist['A'-0x41] = 0;
assist['C'-0x41] = 0;
assist['G'-0x41] = 0;
assist['T'-0x41] = 0;
sum[i] = 0;
for(j=n-1 ; j>=0 ; j--)
{
switch( dna[i][j] )
{
case 'A':
assist['A'-0x41]++;
break;
case 'C':
assist['C'-0x41]++;
sum[i] += assist['A'-0x41];
break;
case 'G':
assist['G'-0x41]++;
sum[i] += (assist['A'-0x41] + assist['C'-0x41]);
break;
case 'T':
assist['T']++;
sum[i] += (assist['A'-0x41] + assist['C'-0x41] + assist['G'-0x41]);
break;
}
}
}
for(i=0 ; i<m ; i++)
{
for(j=0 ; j<m ; j++)
if(sum[j] != -1)
{
k = j;
break;
}
for(j=0 ; j<m ; j++)
{
if( (sum[j]!=-1) && (sum[j] < sum[k]) )
k = j;
}
printf("%s\n" , dna[k]);
sum[k] = -1;
}
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator