zoukankan      html  css  js  c++  java
  • poj 2021 Relative Relatives(暴力)

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

    思路分析:由于数据较小,采用O(N^2)的暴力算法,算出所有后代的年龄,再排序输出。

    代码分析:

    #include <iostream>
    #include <string.h>
    #include <algorithm>
    
    using namespace std;
    #define MAX_N ( 100 + 10 )
    
    typedef struct Descendant
    {
        char Name[30];
        int Age;
    }Desd;
    
    char Father[MAX_N][30];
    char Child[MAX_N][30];
    int Age[MAX_N];
    Desd Descen[MAX_N];
    int Cmp( Desd a, Desd b );
    
    int main()
    {
        int n, Count;
    
        Count = 0;
        strcpy( Descen[0].Name, "Ted" );
        Descen[0].Age = 100;
    
        scanf( "%d", &n );
        for ( int i = 0; i < n; ++i )
        {
            int Num, Index_Father, EndDescen;
    
            Index_Father = EndDescen = 0;
            Count++;
    
            scanf( "%d
    ", &Num );
            for ( int j = 0; j < Num; ++j )
                scanf( "%s %s %d", Father[j], Child[j], &Age[j] );
    
            while ( Index_Father < Num )
            {
                for ( int m = 0; m < Num; ++m )
                {
                    if ( strcmp( Descen[Index_Father].Name, Father[m] ) == 0 )
                    {
                        EndDescen++;
                        strcpy( Descen[EndDescen].Name, Child[m] );
                        Descen[EndDescen].Age = Descen[Index_Father].Age - Age[m];
                    }
                }
                Index_Father++;
            }
    
            sort( Descen, Descen + Num + 1, Cmp );
    
            printf( "DATASET %d
    ", Count );
            for ( int n = 1; n <= Num; ++n )
                printf( "%s %d
    ", Descen[n].Name, Descen[n].Age );
        }
    
        return 0;
    }
    
    int Cmp( Desd a, Desd b )
    {
        if ( a.Age == b.Age )
            return strcmp( a.Name, b.Name ) < 0;
        else
            return a.Age > b.Age;
    }
  • 相关阅读:
    mysql之旅【第一篇】
    初探psutil
    Android的ListView分页功能
    Android中用PULL解析XML
    HTTPClient模块的HttpGet和HttpPost
    PB11.5创建及调用WebService
    Android平台使用SQLite数据库存储数据
    高通mm-camera平台 Camera bring up基本调试思路
    在Linux中使用crontab
    Linux 修改 hostname
  • 原文地址:https://www.cnblogs.com/tallisHe/p/4008155.html
Copyright © 2011-2022 走看看