zoukankan      html  css  js  c++  java
  • poj 1007 DNA Sorting 解题报告

    题目链接:http://poj.org/problem?id=1007

          本题属于字符串排序问题。思路很简单,把每行的字符串和该行字符串统计出的字母逆序的总和看成一个结构体。最后把全部行按照这个总和从小到大排序即可。

         

     1 #include <iostream>
     2 #include <algorithm>
     3 using namespace std;
     4 
     5 struct DNA
     6 {
     7     char s[100];
     8     int count;
     9 } d[100];
    10 
    11 int cmp(DNA a, DNA b)
    12 {
    13     return a.count < b.count;    // 把全部DNA按照count从小到大排序
    14 }
    15 
    16 int main()
    17 {
    18     int i, j, k, m, n, tot;
    19     while (cin >> n >> m)
    20     {
    21         for (k = 0; k < m; k++)
    22         {
    23             scanf("%s", d[k].s);
    24             //cout << d[i].s << endl;
    25             tot = 0;
    26             for (i = 0; i < n; i++)
    27             {
    28                 for (j = i+1; j < n; j++)    // 统计每行字母逆序的总数
    29                 {
    30                     if (d[k].s[i] > d[k].s[j])
    31                         tot++;
    32                 }
    33             }
    34             d[k].count = tot;
    35         }
    36         sort(d, d+m, cmp);
    37         for (i = 0; i < m; i++)
    38         {
    39             cout << d[i].s << endl;
    40         }
    41     }
    42     return 0;
    43 }
  • 相关阅读:
    前端基础之BOM和DOM
    前端基础之JavaScript
    前端基础之CSS
    Black And White HDU
    Robot Motion HDU
    A Knight's Journey POJ
    Find a way HDU
    排序 HDU
    Dungeon Master POJ
    Network Saboteur POJ
  • 原文地址:https://www.cnblogs.com/windysai/p/3249046.html
Copyright © 2011-2022 走看看