zoukankan      html  css  js  c++  java
  • poj 2442 优先队列+多路归并 uva 11997

    白书上的例题,很是经典。

    poj 2442

     1 #include <algorithm>
     2 #include <iostream>
     3 #include <cstring>
     4 #include <cstdio>
     5 #include <queue>
     6 using namespace std;
     7 
     8 const int M = 100;
     9 const int N = 2000;
    10 int a[M][N];
    11 
    12 struct Node
    13 {
    14     int j, v;
    15     Node(){}
    16     Node( int _j, int _v )
    17     {
    18         j = _j, v = _v;
    19     }
    20     bool operator < ( const Node & o ) const
    21     {
    22         return v > o.v;
    23     }
    24 };
    25 
    26 void merge_list( int * a, int * b, int len )
    27 {
    28     priority_queue<Node> q;
    29     for ( int i = 0; i < len; i++ )
    30     {
    31         q.push( Node( 0, a[i] + b[0] ) );
    32     }
    33     for ( int i = 0; i < len; i++ )
    34     {
    35         Node node = q.top();
    36         q.pop();
    37         a[i] = node.v;
    38         if ( node.j + 1 < len )
    39         {
    40             q.push( Node( node.j + 1, node.v - b[node.j] + b[node.j + 1] ) );
    41         }
    42     }
    43 }
    44 
    45 int main ()
    46 {
    47     int t;
    48     scanf("%d", &t);
    49     while ( t-- )
    50     {
    51         int m, n;
    52         scanf("%d%d", &m, &n);
    53         for ( int i = 0; i < m; i++ )
    54         {
    55             for ( int j = 0; j < n; j++ )
    56             {
    57                 scanf("%d", &a[i][j]);
    58             }
    59             sort( a[i], a[i] + n );
    60         }
    61         for ( int i = 1; i < m; i++ )
    62         {
    63             merge_list( a[0], a[i], n );
    64         }
    65         for ( int i = 0; i < n; i++ )
    66         {
    67             printf("%d", a[0][i]);
    68             if ( i != n - 1 ) putchar(' ');
    69             else putchar('
    ');
    70         }
    71     }
    72     return 0;
    73 }

    uva 11997

     1 #include <algorithm>
     2 #include <iostream>
     3 #include <cstring>
     4 #include <cstdio>
     5 #include <queue>
     6 using namespace std;
     7 
     8 const int N = 1000;
     9 int a[N][N];
    10 
    11 struct Node
    12 {
    13     int j, v;
    14     Node(){}
    15     Node( int _j, int _v )
    16     {
    17         j = _j, v = _v;
    18     }
    19     bool operator < ( const Node & o ) const
    20     {
    21         return v > o.v;
    22     }
    23 };
    24 
    25 void merge_list( int * a, int * b, int len )
    26 {
    27     priority_queue<Node> q;
    28     for ( int i = 0; i < len; i++ )
    29     {
    30         q.push( Node( 0, a[i] + b[0] ) );
    31     }
    32     for ( int i = 0; i < len; i++ )
    33     {
    34         Node node = q.top();
    35         q.pop();
    36         a[i] = node.v;
    37         if ( node.j + 1 < len )
    38         {
    39             q.push( Node( node.j + 1, node.v - b[node.j] + b[node.j + 1] ) );
    40         }
    41     }
    42 }
    43 
    44 int main ()
    45 {
    46     int n;
    47     while ( scanf("%d", &n) != EOF )
    48     {
    49         for ( int i = 0; i < n; i++ )
    50         {
    51             for ( int j = 0; j < n; j++ )
    52             {
    53                 scanf("%d", &a[i][j]);
    54             }
    55             sort( a[i], a[i] + n );
    56         }
    57         for ( int i = 1; i < n; i++ )
    58         {
    59             merge_list( a[0], a[i], n );
    60         }
    61         for ( int i = 0; i < n; i++ )
    62         {
    63             printf("%d", a[0][i]);
    64             if ( i != n - 1 ) putchar(' ');
    65             else putchar('
    ');
    66         }
    67     }
    68     return 0;
    69 }
  • 相关阅读:
    Web SSH 客户端Ajaxterm安装
    Ubuntu Manpage: ajaxterm
    Web工程师的工具箱 | 酷壳
    EF架构~二级域名中共享Session
    VS~通过IIS网站启用"域名"调试
    EF架构~豁出去了,为了IOC,为了扩展,改变以前的IRepository接口
    MVVM架构~knockoutjs系列之文本框数符长度动态统计功能
    JS~jwPlayer为js预留的回调方法大总结
    晒网站:应用诺贝尔奖得主罗斯匹配算法的交友网站,具有更符合用户大网撒鱼心理的新颖用户使用模式
    ZOJ 2334(Monkey King-左偏树第一题)
  • 原文地址:https://www.cnblogs.com/huoxiayu/p/4645674.html
Copyright © 2011-2022 走看看