回 帖 发 新 帖 刷新版面

主题:一道竞赛题

各位大虾:
小弟遇到一个问题,怎么做都是死机,可是我又看不出我的程序有错,请赐教.
问题如下:
某种基因序列如下:ACTGTCAG,其中只有8个因素,且只为A,C,T,G(任意排列),现给出N组序列,要求判断所有基因序列有多少有血缘,关系判断条件如下:
一个基因序列中的四个元素两两调换后,如果另一序列和调换后的序列完全相同,则这两个序列有血缘关系.但两个序列只能算一次.如ACTGACTG,CAGTACTG就有血缘关系.
输入:从文件输入,第一行为序列的组数,以后各行为序列.
输出:有多少对序列有血缘关系.
语言:BORLANDC(TC亦可)
我的程序如下:
#include
#include
void main()
{
char a[8000][8],m[20][2];
static int w[4];
int i,j,n,b,c,d,top=0,g=0,p,q;
ifstream in("dna.in",ios::in);
if(!in)
{
   cout<<"Can't open file dna.in."<    exit(0);
}
ofstream out("dna.out",ios::out);
in>>b;
for(i=0;i   for(j=0;j<8;j++)
   {
    in>>a[i][j];
   }
for(i=0;i   {
   for(n=i+1;n     {
     for(j=0;j<8;j++)
     {
      if(a[i][j]!=a[n][j])
       {
    m[g][0]=a[i][j];
    m[g][1]=a[n][j];
    g=g+1;
       }
     }
     if(g==2)
      {
       if(m[0][0]==m[1][1]&&m[0][1]==m[1][0])
       {
    top++;
    g=0;
       }
      }
     if(g==4)
      {
        w[4]={0,0,0,0}
        flag1=0;
    for(p=0;p<4&&w[p]==0;p++)
    {
      w[p]=1;
      for(q=p+1;q<4&&w[q]==0;q++)
        if(m[p][0]==m[q][1]&&m[p][1]==m[q][0])
        {
         flag1++;
         w[q]=1;
         break;
        }
    }
    if(flag1==2)
      top++;
     }
   }
}
out< in.close();
out.close();
}


附测试数据:
"第0个测试点"
3
ATCTACTG
CTATACTG
CTATGATC
"第1个测试点"
3
AGGGAACC
ACCTCTAC
CGGGCAAA
"第2个测试点"
10
ATGCGTGT
TAAAGGTC
GCGAAACG
CTTTTATA
CGAGAACG
ATAAGGTC
CGTTCACT
TCTTTATA
TGCGCCAA
CTTTAGCC
"第3个测试点"
100
CAGCAAAC
TGTTGCCG
CTTCGACA
ACCGAAAC
GTTTGCCG
AGCATGCG
GCTAGAAG
TCACGGGC
GATGCGTT
CTCAGGGC
CACCTCGA
ATGCCGGG
ATTGCGAA
TCCTGACA
GTAGCATC
TCCTGGGG
TAACCTAG
TCACCTAC
CTCACTAC
TACGCGGG
TAGGTCTG
CGATGAAG
ACCCTCGA
AATCATAC
ACGCGATC
CACGGATC
AGGCTCAT
TTAGCCTA
CTTCGGGG
CTCATATA
CGTTGTTC
GCCATATA
TCACTATA
GACACCAG
TCAAGTCC
TGGACATC
GACTTGAC
AACTATAC
TTGATGCG
TGACCGTT
TCCCCGAA
GGTAAGGG
TTGCTTTA
AATAGTCC
GCTTGTTC
AAGTACTC
CGGGCAAG
TAGTCGAA
GGTGGGGC
TCTCGTAA
CGCAAACA
GATGCGTG
CTAAGTCC
TGGAATTT
TTACAAAG
CAATACTA
CAAAAACC
TGGATCTA
CCTCTGGT
TTTGTCAG
CGGAGCAG
CTTGTTAC
AGCGCCAT
TTCATGTT
AGACCCAG
TCTGGTGA
TTACTGTT
AATTATCT
ATCCTCTG
CCATTGCC
TGCCCAGC
TGGTCTGG
GGGACACC
AGTGGGCG
GAGCTTTG
CACGGTAA
TAAACTTT
TCTTACGT
CTTAGTCC
TACTAAGG
CAACGGTG
AGTTCCTG
GCATGTAC
AGTCCTTC
TTCTGTCT
GTGATGGA
TTGTTCAG
AGTTAGAA
GTAGTCTA
TCCAGAGG
AGGTCGTT
AGCGGCAC
GAGTCTAC
TGCGAATT
CGCCTCAA
CACAATGT
GCCCTCAA
ATTTATCC
TAGAATGG
GGTTTGGG
"第4个测试点"
500
CGAGCGTG
GCGACGTG
GTGGACAT
CTTTCATG
CCGGTTGA
GCTCACCG
CAACAAAA
TCGGCCCC
AGACCTAG
CCCAGACA
GACACTAG
CCACGACA
CTCAAGTA
GTTTTATC
TCACAGTA
GTTTCAAC
ACGTTATT
CGAGCCAA
CGTAAACT
ACCTTTGC
AAGGTCCG
CATCTTGC
TGTTTATC
TCAAAATC
CCGAAATA
TATTGAAC
TCTTCATG
AATGCTCC
GCATAACT
ATTAAAGC
AGTGGGCG
TCCGTCGG
AAGTCTCC
TCGTCTTC
CCTTCCGG
GTTAGATA
TGAGACCT
TGATGATA
TGCAATCT
GTTTTGCC
ACTGTCTC
TAATAAGC
GTGCGACT
GTGAACCT
GTTAGAAA
GCGTTCTC
TGCCGCCC
CAAGAGAG
TGGCAACC
GTCCGCCC
GTTGCTAT
CGTGTCTC
TGATGAAA
GGGCTTTG
TGTGGGCG
CCTAGCGC
AGAGTTGG
TGCGGACT
CCAGAATA
TGGTTTAA
CTACCACT
TTGGTTTA
TTGGCTGC
TGACGGTC
GTACATCT
ATAGTCAG
GACAGGGT
CAACGTCC
TCGGTAGG
AACAATAT
CGGTATCT
TGTACCGC
GTCAGGTC
GAGATTGG
GATGGTGT
CCCGCCGA
GCCGACCG
CGATATAA
CTGCTACG
CTTGCTTC
GCTTTTAT
CCGCCCGA
ACGAAGAG
GCGACCAA
GTGTGGCG
GCCGAGGC
TGCTGCTT
TGAAACCA
TCTGTCCG
AAACGCCC
CTTGACGA
CGGCTATT
CTATCCCA
AGCCGTGC
AGACGGGT
AACAGCCC
GTTCGATC
CGGCACCG
TTGTCTAG
ATTAAATT
CTCCCTAT
CCGAATGA
CGTGTTAA
TGTTTGCC
ATCTGACA
TGTATACC
GCGTAAAC
CGTCAACG
AATTGAGT
AATCTCCA
ATGTTTCA
GATGTTAT
GGTTTCAA
AAGCTCTA
AGGCGGCG
TAATAATT
AGAAGTGG
ACCTCTAG
TTGAATCC
TGACAACG
ATGTTGTA
ACTCTTTT
TATCTAAA
TCCGAACG
TGAGTTAG
TAGAGATA
GGCGTTTG
TCACTCGG
AAGGCCAA
GACGGATT
GAACGCAC
CTGTTTGA
TGGTGATA
TTTGCTAG
GCGAAATT
TATCGACA
GTTGGATC
CGCAGCCA
GCCCCGGT
CGACATGG
ACCGGTAG
CCACTGCA
GAGTGGCG
CAAAGACT
CGTGAGGG
TCCACACT
CACTTTTT
TCTTCCCC
GAGCTCAA
TAGGGATT
GTTTGCCA
GTACTCGC
ACTGGGAC
TACTATCA
CTAAAATC
TTAGATCC
TATGTGTA
CTCCTCTA
TCGTACGA
CAGCGTAG
TACTAAAG
TGTACATT
AGACGAAC
GTTGTTAA
ATCGTGTC
GGTGTTTG
CTTTCGTA
CGAGAATT
GAGTCGCT
GTAAACCA
ATAAATAC
CAAAAGTA
CCTAACGA
ACCAGTCC
GAGTTAAC
CATGTATT
AGACGCAG
TAACCAGT
GACAGAAC
TCAGTTGC
TCGCAAGA
GCAGCTAG
TGATTTTA
ACATAGCT
CGTTTCAC
TGTGTATT
TGTGCCTT
ATAAAGTG
CTAAGACG
CCAGGAAG
CGATGGGT
TCAATATG
TGTAATGC
GGTGTGCG
GATTCAGG
TCGATGTT
CACACGTC
GCACGTAT
AGTCGTGC
AACGCTTA
AGGTTTAT
GAGTTGAT
CTCATAGC
ATTACAAC
GCATCCTT
TCTGAGAA
ATAGGAGT
GCGTTACA
TGTCTCAA
AGCTCATG
TACAGCTC
GTGTTATT
AATTCGGA
TTATCGGT
CCAATAGA
ATTCACTC
ACCTTAAT
AGGTCCTA
TCTTTCCA
TGCTTTAA
AACTCAGC
TGCCGCGC
CCTGATAG
CTACGCCA
AGCTCCGA
TGCACCTG
CTGGTAGG
TTAACCGA
CCTAGCTC
GCCAATGG
CAGGAGGG
CTGATTGC
GCAGGATG
ATAGGCAA
TAAGCCTT
GCAGGGTG
CGAACCTT
TGGTTAAC
GCACGCAG
GCGTAGGG
CTCGCCTT
CGAACTAG
ATGGGATT
GACTGCGC
TTATTGTC
TAGTCGGC
CCCCTGAG
GGGTGCGG
CGAATGAC
GCACGAAC
TAAAATAC
GGACTTTA
TTCTTCAA
CTCAGAGC
GGGACACC
GGCAGCAC
TAGGATGT
GTCAAACG
AATCCAGC
CAGGTCAC
GAATAACC
CAACACTT
TGTGTAGT
CTGATGAG
GTCCAAAG
CAGTTCTC
GGGTGTCT
TGAGATAC
ATAGGATA
GCTCACTA
TCAAGTTC
CCAGGCGC
GTGCTACG
GCTGATCT
TAGGGAAG
TCCGTTTA
GTATCATT
TACTTCAA
ATTTGGTT
TTTCTAAA
ATCTAGAC
GAATGCTC
AAATGTAG
CCATACCG
AGAACGCC
AATGCACG
TGCGAGCA
TGGTAGGT
TGGTACAA
CATGGTCT
TCTGTTGA
GGCATCGG
AACTTCCA
GGGACCCT
CCTCGACA
CGGATAGT
GTGTTAGT
CCTAACCG
TCCGTCAG
ATTCTCAA
AGAAATAT
TGGTCTAT
GCTGGGCT
ACGGAGGG
TCTATAAC
TCCGGCTG
TGACACAA
CAAGACTG
ACTCAGCC
ATCACAGT
AAGTTCGC
TGAGTGTT
TACGATCA
CGGAAAAC
CGTAACTT
ACTGGCGT
ACCTAAAA
TCCTCCAT
TTTCAAAG
ACCAGTGC
CTGCTCAG
CCCGCGTA
CATCTAAT
AGAACTAT
GTATCCGC
TAAATTGG
TCGACTAC
ACCGGGAT
CATATTTG
TGTGTCCT
ATGCTGAC
TCAGTGAG
TCCCCTCT
CTCACCTC
TATGTTCA
ATCCTAAC
GGACTCGG
TGACTTAA
TACCTAAC
GCTAGTCA
ACACCGTC
GGGCACAC
CAATCCCC
GGTTGATA
GACAGCAG
GCAATGAC
CCAGCCCA
CAGAAACA
CCACAGGC
AGGCTTAA
TCAAGACG
AATAGGCG
CCATACGA
GTTATTTA
AAGAAATA
CTAGAGCC
TAGATCCG
CTAGTGTT
GCCCAGCA
GCCTCGAA
TTTCGGGC
AGCTCACC
CAACCTTT
GGCGTCTA
GTTGTAAC
TTGACATA
TCCGTACG
CGTGCTAT
ATCCTTCC
ACTGACGA
CCCAACGT
TACCTTCC
AACCCCCG
TCGACCCC
GTTGACAA
ACCACTAG
TGCGTACG
GCAGAAAC
AATGTCGC
CCCATGCA
CATACCGT
GTATTACC
TACGGAAG
GACTGACG
CCAGTGAT
ATCCTCGT
GCCCCAGT
AATAGGTA
CTAATCGG
AGCCTATA
GCGGAGTG
GCAGGGAG
ATTGCCGT
CCATTCTA
ATACCTGG
TTTATGTC
GATCCCGA
GACAATGG
AGCAGCAC
TCAGACCG
AGGACACT
CAACCTAG
TCCCTATC
GGGTTCGT
CGGACTAG
ACCTCGCT
GGCTAGTT
CACGGAGC
GAGCTTAT
CGCCCGGT
TAAACACC
TCATCATG
TATCAGAC
GTTCAGGC
CACCAGAC
ACGCATAC
CATCCTAG
AGTAAACC
GGAGCACC
AAGTTTGC
CGAGGATG
GCCCGAGG
CTAATTCG
GTCCTGCG
ACGAAGTA
GTCGTTAC
AACGTCTA
ACAAAGTA
CCTTAGAC
ACCCGTAG
CCCTTGAA
TTTCAGGA
TTTTGTCG
ATACAGTT
TCGAAAAA
CTGGCCCC
CAAACATG
CCTCGCAC
GATCCACC
ACAAGTAG
GAAAGGTT
ATAACACT
TCAGGGAC
ATCTCCTT
AGCATGGA
GCACTGCA
CCCAATGT
ACATTTGT
ATTCAAAG
TGTGTACG
CCTATCGC
CTAGTAGT
AGGCATTA
TTATATCT
ACTTGACC
CCTACCTC
ATAGAAAA
AAGCTCCC
TCCGATAA
GTTCTTAA
GAATCTTG
CTCTCGAA
CCAGAAAC
GTACACTG
GCACGCCA
TGTAAGTA
CTAAGATC
CTTTGGTG
CTGCATAA
TAACCTGT
AGTTCTTC
GAACTTCA
TCGCGTAG
CGAAAGAT
CCTTGTCC
GCGTGTAT
CTGGAGGG
GCGAACGT
GTAAGGGA
AATCGCCT
GAACGATG
TCCTAGGG
TGATCTGG
CATCAAAA
CTGCTTCC
ACTACCCC
CGGCGAGT
CTGTAGTG
TGCTAACG
CTGCTCGG
CGCTTTGA
GAACCAGA
CTTGGTGG
GGGCTGAA
CTTGCCAG
GGCATCCT
TCGCCCTT
CTCGAAGA
CCCTGACA
ACCATAAA


答案:
"第0个测试点"
1
"第1个测试点"
1
"第2个测试点"
3
"第3个测试点"
28
"第4个测试点"
367


先测4个,如果有问题,我在放上其余6个!
谢谢!!!!!

回复列表 (共11个回复)

沙发

用不着这么长吧

板凳

大哥了,我看就晕了

3 楼

厉害!!!!!啊!!

4 楼

大家都看看啊,我搞死了!
每个测试点时间要限制在2秒以内!

5 楼

统计一下每组 ACTG 的 ACTG 的个数,然后和别的比较就行了

6 楼

每组的个数?不对吧,每一行都是无限向下延伸出去的啊!
你可能理解错了吧!

7 楼

ft
数据都贴上来了

8 楼

看了这个我才知道我很菜!!!!!

9 楼

其实这个题不用这么麻烦吧~

10 楼


[em19][em19][em19][em19][em19][em19]

我来回复

您尚未登录,请登录后再回复。点此登录或注册