青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

我希望你是我獨家記憶

一段永遠封存的記憶,隨風而去
posts - 263, comments - 31, trackbacks - 0, articles - 3
   :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理

PKU——2442——(堆的題目)

Posted on 2008-08-28 15:38 Hero 閱讀(599) 評論(1)  編輯 收藏 引用 所屬分類: 代碼如詩--ACM
//PKU 2442 Accepted 260K 438MS C++ 2837B 

//兩個隊列--每次只處理兩行

//這個題目讓我對"堆"有了新的認識--雙向映射

#include 
<stdio.h>
#include 
<stdlib.h>
#include 
<string.h>

const int INF = 100000000 ;
const int size = 2010 ;
int data1[size] ;
int point[size] ;//data1[]的每個元素的指針
int data2[size] ;
int data3[size] ;//保存data1[]和data2[]相加后的最小inn個元素

struct QUE
{
    
int len ;
    
int toheap ;
};
struct QUE que[size] ;
//暫存隊列--求出data1[]+data2[]和最小的前n個元素--data3-->data1
int cque ;
int heap[size] ;//指向data3[]
int cheap ;

int innum ; int ct ;
int inn, inm ;

int cmp( const void *a, const void *b )
{
    
return *(int *)a - *(int *)b ;
}

void input()
{
    scanf( 
"%d %d"&inm, &inn ) ;
    
forint i=1; i<=inn; i++ )
    {
        scanf( 
"%d"&data1[i] ) ; point[i] = 1 ; 
    }
    qsort( data1
+1, inn, sizeof(data1[1]), cmp ) ;

    data1[inn
+1= INF ;
}


void swap( int &a,int &b )
{
    
int t = a ; a = b ; b = t ;
}

void moveup( struct QUE *dist, int n )
{
//將新加入的點向上移動來維持堆,n表示要向上移動的點的坐標

    
//    while( n&&arry[n]>arry[(n-1)/2] )
    while( n&&dist[heap[n]].len<dist[heap[(n-1)/2]].len )
    {
        swap( dist[heap[n]].toheap,dist[heap[(n
-1)/2]].toheap ) ;
        swap( heap[n],heap[(n
-1)/2] ) ;
        n 
= ( n-1 ) / 2 ;
    }
}


void movedown( struct QUE *dist, int n )
{
//堆頂改變后,將其向下移動維持堆.n表示堆中元素總數目

    
int i = 0 ;
    
while( i+i+1 < n )
    {
        
//if( i+i+2<n&&arry[i+i+2]>arry[i+i+1]&&arry[i+i+2]>arry[i] )
        if( i+i+2<n&&dist[heap[i+i+2]].len<dist[heap[i+i+1]].len&&dist[heap[i+i+2]].len<dist[heap[i]].len )
        {
            swap( dist[heap[i
+i+2]].toheap, dist[heap[i]].toheap ) ;
            swap( heap[i
+i+2],heap[i] ) ;
            i 
= i+i+2 ;
        }
        
//else if( arry[i+i+1] > arry[i] ) 
        else if( dist[heap[i+i+1]].len < dist[heap[i]].len )
        {
            swap( dist[heap[i
+i+1]].toheap, dist[heap[i]].toheap ) ;
            swap( heap[i
+i+1],heap[i] ) ;
            i 
= i+i+1 ;
        }
        
else    break ;
    }
}

void process()
{
    
forint i=2; i<=inm; i++ )
    {
        
forint j=1; j<=inn; j++ )    
        {
            scanf( 
"%d"&data2[j] ) ; 
        }
//下一行數據輸入--求兩行和最小的前n個元素
        qsort( data2+1, inn, sizeof(data2[1]), cmp ) ;

        cheap 
= -1 ; data2[inn+1= INF ;//為了避免point[]指針越界
        forint k=1; k<=inn; k++ )
        {
            que[k].len 
= data1[k] + data2[1] ; point[k] = 1 ;
            heap[
++cheap] = k ; que[k].toheap = cheap ;//先heap再toheap
        }
        
int temp ;
        
forint k=1; k<=inn; k++ )
        {
            data3[k] 
= que[heap[0]].len ; //彈出堆頂的元素
            point[heap[0]]++ ; //printf( "point[%d]==%d\n", heap[0], point[heap[0]] ) ;
            temp = data1[heap[0]]+data2[point[heap[0]]] ;
            que[heap[
0]].len = temp ;//更新que[]隊列的值
            movedown( que, cheap+1 ) ;
        }
//找出和最小的inn個元素

        
//memcpy( data1, data3, inn+1 ) ;
        forint k=1; k<=inn+1; k++ ) data1[k] = data3[k] ;
    }
}

void output() 
{
    
forint i=1; i<inn; i++ ) printf( "%d ", data1[i] ) ;

    printf( 
"%d\n", data1[inn] ) ;
}

int main()
{
    
while( scanf( "%d"&innum ) != EOF )
    {
        
forint ct=1; ct<=innum; ct++ )
        {
            input() ;

            process() ;

            output() ;
        }
    }

    
return 0 ;
}

Feedback

# re: PKU——2442——(堆的題目)  回復  更多評論   

2011-03-15 21:33 by acmer
謝謝,我用了你的方法過了這道題目!
可以加你QQ嗎?
我的QQ是339379406
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久天堂国产精品| 91久久精品www人人做人人爽| 欧美高清在线一区二区| 久久精品视频99| 久久欧美中文字幕| 免费看亚洲片| 亚洲日本中文字幕| 欧美国产日产韩国视频| 亚洲精选成人| 欧美一区二区三区另类| 麻豆av一区二区三区| 欧美日本亚洲韩国国产| 国产伦精品一区二区三区在线观看 | 亚洲欧美综合v| 久久精品在线视频| 亚洲高清在线观看| 亚洲午夜国产成人av电影男同| 欧美一区二区三区的| 欧美激情影院| 国产亚洲成av人片在线观看桃| 亚洲激情影视| 欧美制服丝袜第一页| 91久久线看在观草草青青| 亚洲欧美日韩中文视频| 欧美大片一区二区| 国产精品最新自拍| 亚洲精选大片| 久久嫩草精品久久久精品一| 一本久久a久久精品亚洲| 久久亚洲精选| 国产拍揄自揄精品视频麻豆| 日韩午夜在线| 免费视频一区| 午夜精品亚洲| 国产精品wwwwww| 亚洲精品小视频| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲国产裸拍裸体视频在线观看乱了中文 | 午夜精品视频| 男人的天堂亚洲| 国产一区二区三区最好精华液| a91a精品视频在线观看| 玖玖在线精品| 国产欧美日韩不卡| 狠狠色噜噜狠狠色综合久| 在线亚洲+欧美+日本专区| 久久天堂成人| 欧美一区二区三区另类| 国产精品久久二区二区| 亚洲狼人综合| 亚洲国产成人av| 久久久国产一区二区| 国产婷婷色综合av蜜臀av | 欧美一区二区三区日韩视频| 亚洲靠逼com| 欧美另类99xxxxx| 日韩视频在线一区二区三区| 亚洲成人在线视频播放| 亚洲一区免费网站| 亚洲无玛一区| 亚洲欧洲日本国产| 久久久精品tv| 欧美一区二区精品久久911| 欧美性猛交视频| 一区二区三区免费在线观看| 亚洲国产精品成人| 你懂的视频欧美| 亚洲国产精品专区久久| 亚洲电影专区| 欧美剧在线免费观看网站| 日韩视频在线永久播放| 亚洲人成在线观看网站高清| 欧美精品999| 亚洲一区3d动漫同人无遮挡| 一区二区免费在线播放| 国产欧美韩日| 免费在线看一区| 欧美极品色图| 亚洲欧美日韩精品久久奇米色影视 | 亚洲视频一起| 亚洲小说欧美另类社区| 国内精品久久久久久| 欧美激情片在线观看| 欧美日韩精品三区| 久久爱www久久做| 老**午夜毛片一区二区三区| 99热在线精品观看| 午夜精品视频在线| 国产美女精品免费电影| 亚洲国产精品999| 免费看黄裸体一级大秀欧美| 中日韩男男gay无套| 性色av一区二区三区| 怡红院av一区二区三区| 亚洲人屁股眼子交8| 国产精品一香蕉国产线看观看| 每日更新成人在线视频| 欧美日韩国产精品一区| 久久久综合网| 欧美特黄一级| 欧美成人有码| 国产精品一区二区三区观看| 欧美激情欧美激情在线五月| 国产欧美精品国产国产专区| 亚洲国产欧美日韩精品| 国产一区二区精品| 在线一区二区日韩| 亚洲国产精品成人综合| 亚洲综合色激情五月| 99精品视频一区| 理论片一区二区在线| 欧美一区二区精品在线| 欧美人与禽猛交乱配| 裸体女人亚洲精品一区| 国产美女精品在线| 在线视频精品一区| av成人手机在线| 免费国产一区二区| 免费观看久久久4p| 黄色成人av网| 欧美一区二区福利在线| 午夜亚洲一区| 国产精品第一区| 日韩一区二区精品在线观看| 麻豆久久久9性大片| 国产精品黄视频| 亚洲精品日韩欧美| 99re6这里只有精品视频在线观看| 久久免费黄色| 蜜臀久久久99精品久久久久久| 国产日韩在线不卡| 欧美亚洲免费电影| 久久精品一本| 国产精品美女黄网| 亚洲女同性videos| 欧美亚洲免费| 国产精品视频久久久| 国产精品国产自产拍高清av| 香蕉久久一区二区不卡无毒影院| 国产精品萝li| 欧美在线不卡| 国产精品日韩在线一区| 亚洲性图久久| 久久激情综合网| 一区二区视频欧美| 久久中文在线| 亚洲国产日韩精品| 中日韩美女免费视频网址在线观看| 欧美日韩xxxxx| 亚洲一区二区精品在线观看| 午夜在线一区二区| 国产一区二区三区高清播放| 亚洲欧美日韩天堂| 亚洲图片欧美一区| 亚洲精品一区二区在线观看| 一区二区三区导航| 夜夜爽av福利精品导航| 在线看片成人| 久久婷婷综合激情| 亚洲第一福利视频| 亚洲天堂网站在线观看视频| 国产精品一区二区你懂得| 亚洲欧美国产日韩天堂区| 久久综合狠狠综合久久综青草 | 在线观看日韩av| 欧美国产精品一区| 一本色道久久综合亚洲精品婷婷| 欧美精品粉嫩高潮一区二区| 一区二区三区日韩在线观看| 久久久久欧美精品| 一本色道88久久加勒比精品| 国产欧美一区二区精品仙草咪 | 国产精品久久久久7777婷婷| 午夜国产精品影院在线观看| 欧美成人一区二区在线| 亚洲精品一区二区三区樱花| 免费成人av在线| 欧美久久电影| 亚洲第一福利视频| 欧美色视频在线| 久久国产精彩视频| 亚洲国产一区二区在线| 欧美在线日韩| 亚洲午夜精品| 亚洲黄色视屏| 国产主播在线一区| 国产精品免费电影| 欧美国产精品劲爆| 久久精品国产91精品亚洲| 亚洲美女黄色片| 欧美成人免费网| 欧美一区二区三区四区视频| 久久www免费人成看片高清 | 久久精品二区三区| 精品69视频一区二区三区| 欧美日韩福利视频| 美女视频黄a大片欧美| 久久成人精品无人区| 亚洲午夜av在线| 亚洲精选一区|