⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 verify_genetic.cc

📁 ULM大学200-2002年竞赛题
💻 CC
字号:
// Problem   Phylogenetic Trees Inherited// Algorithm Dynamic Programming// Runtime   O(n * l)// Author    Walter Guttmann// Date      12.01.2000#include <cassert>#include <fstream>ifstream in ("genetic.in");static char seq[1024][1024];main (int argc, char** argv){  assert (argc >= 1);  ifstream out (argv[1]);  assert (! out.fail());  int heap[2048], n, l;  while (in >> n >> l)  {    if (n == 0 || l == 0) break;    for (int k=0 ; k<n ; k++)      in >> seq[k];    int cost = 0;    for (int i=0 ; i<l ; i++)    {      for (int k=0 ; k<n ; k++)        heap[n+k] = 1 << (seq[k][i] - 'A');      for (int k=n-1 ; k>0 ; k--)        if (! (heap[k] = heap[k+k] & heap[k+k+1]))          ++cost, heap[k] = heap[k+k] | heap[k+k+1];      // char ch = 'A';      // while (heap[1]>>=1) ++ch;      // cout << ch;      char outCh;      assert (out >> outCh);      assert ('A' <= outCh && outCh <= 'Z');      assert ((heap[1] >> (outCh - 'A')) & 1);    }    // cout << ' ' << cost << endl;    int outCost;    assert (out >> outCost >> ws);    assert (outCost == cost);  }  assert ((out >> ws).eof());  return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -