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

我希望你是我獨家記憶

一段永遠封存的記憶,隨風(fēng)而去
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 

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

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

#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表示要向上移動的點的坐標(biāo)

    
//    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表示堆中元素總數(shù)目

    
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] ) ; 
        }
//下一行數(shù)據(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 ; //彈出堆頂?shù)脑?/span>
            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——(堆的題目)  回復(fù)  更多評論   

2011-03-15 21:33 by acmer
謝謝,我用了你的方法過了這道題目!
可以加你QQ嗎?
我的QQ是339379406

只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久久久久久一区二区| 老司机一区二区| 美女精品在线| 老司机成人在线视频| 久久精品亚洲乱码伦伦中文 | 欧美freesex8一10精品| 欧美国产日韩精品免费观看| 欧美理论在线播放| 国产精品久久久久久久久久久久久久 | 国产一区视频网站| 亚洲大黄网站| 一本大道久久精品懂色aⅴ| 一区二区三区 在线观看视| 亚洲一区二区在线视频 | 日韩视频精品在线观看| 夜夜狂射影院欧美极品| 欧美一区二区在线免费观看| 美女黄网久久| 国产精品久久久久久久久久妞妞| 一区二区三区在线免费观看| 亚洲色无码播放| 久久精品最新地址| 亚洲黄色毛片| 一区二区三区欧美激情| 欧美专区日韩专区| 欧美性生交xxxxx久久久| 国产在线视频欧美一区二区三区| 一本色道久久综合亚洲精品不| 久久精品一区二区国产| 99国产精品| 欧美成人一品| 国产美女精品免费电影| 亚洲精品看片| 久久免费黄色| 亚洲永久视频| 国产精品成人aaaaa网站| 亚洲激情第一页| 久久一本综合频道| 中文久久精品| 欧美日本久久| 亚洲精品国产精品乱码不99按摩| 欧美二区在线| 亚洲欧美日韩久久精品| 免费中文字幕日韩欧美| 国产一区二区三区高清播放| 在线综合亚洲| 亚洲国产婷婷香蕉久久久久久| 午夜视频一区| 国产精品一区二区在线观看| 亚洲午夜激情免费视频| 亚洲国产高清一区二区三区| 久久一二三四| 在线成人激情| 久久亚洲电影| 久久精品午夜| 国内精品一区二区| 久久久夜夜夜| 久久蜜桃资源一区二区老牛| 在线不卡视频| 亚洲国产精品一区二区久| 老司机久久99久久精品播放免费| 国产一区二区精品在线观看| 欧美一区二区三区在| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产精品久久国产精品99gif| 亚洲女ⅴideoshd黑人| 亚洲午夜一区二区| 国产精品一区二区黑丝| 欧美一区亚洲| 久久成人免费| 在线精品观看| 亚洲高清不卡在线| 欧美日韩亚洲一区二区三区| 亚洲尤物在线| 欧美一区二区三区在| 永久域名在线精品| 亚洲精品视频在线| 国产精品视频免费观看www| 欧美一级淫片aaaaaaa视频| 欧美亚洲一级| 亚洲国产日韩欧美在线动漫| 亚洲美女黄色| 国产精品免费aⅴ片在线观看| 欧美在线视屏| 免费av成人在线| 亚洲视频碰碰| 午夜一区不卡| 韩国av一区二区| 亚洲国产精品一区二区www| 国产精品爱久久久久久久| 午夜精品美女久久久久av福利| 欧美伊人久久久久久久久影院| 亚洲高清av在线| 亚洲午夜久久久久久久久电影网| 国产一区二区三区四区| 亚洲高清视频一区| 国产精品丝袜白浆摸在线| 老司机一区二区三区| 欧美日韩在线电影| 美女尤物久久精品| 国产精品夫妻自拍| 欧美激情视频一区二区三区免费 | 亚洲性色视频| 精品99视频| 亚洲视频高清| 亚洲国产精品成人va在线观看| 99在线|亚洲一区二区| 国内成人精品一区| 日韩午夜视频在线观看| 亚洲成色www久久网站| 亚洲性夜色噜噜噜7777| 亚洲日韩欧美视频一区| 欧美一区二区三区在线看| 中文在线一区| 欧美成人综合| 美女日韩欧美| 黄色日韩精品| 午夜国产精品视频| 亚洲一区二区三区高清| 欧美日韩不卡| 亚洲三级电影全部在线观看高清| 在线观看91精品国产麻豆| 欧美一级专区| 欧美中文字幕| 国产精品成人免费| 日韩一级黄色av| 亚洲精品久久久久久久久久久久| 亚洲欧美日韩在线| 欧美亚洲综合在线| 国产精品每日更新| 亚洲精品久久久久久久久久久| 亚洲国产精品一区二区第四页av| 久久精品导航| 久久精品夜夜夜夜久久| 国内精品国产成人| 久久视频国产精品免费视频在线| 老色批av在线精品| 亚洲福利视频二区| 欧美激情一区二区久久久| 欧美激情1区2区| 亚洲国产精品成人综合色在线婷婷| 久久国产精品毛片| 欧美 日韩 国产一区二区在线视频| 一区视频在线看| 欧美1区2区视频| 亚洲精品一区二区在线观看| 在线视频亚洲欧美| 欧美性久久久| 欧美亚洲免费| 欧美肥婆在线| 亚洲视频在线一区| 国产网站欧美日韩免费精品在线观看 | 国产精品日韩欧美| 亚洲一区二区三区精品动漫| 欧美一区二区三区精品| 国产人成一区二区三区影院| 久久精品一二三区| 亚洲国产另类精品专区| 亚洲人成人一区二区在线观看| 欧美一区二区三区在线| 亚洲高清视频一区二区| 久久尤物视频| 91久久久久| 亚洲欧美日韩中文播放| 国产一区二区三区日韩| 欧美精品国产一区二区| 午夜在线视频一区二区区别| 欧美成年网站| 亚洲欧美激情视频在线观看一区二区三区| 国产人成一区二区三区影院 | 欧美精品在线网站| 亚洲男人第一av网站| 欧美成人在线网站| 亚洲欧美成人精品| 在线观看日韩av先锋影音电影院| 欧美连裤袜在线视频| 亚洲一区国产精品| 亚洲高清不卡在线观看| 欧美一区高清| 中文欧美在线视频| 伊人久久亚洲美女图片| 欧美 日韩 国产在线| 性做久久久久久久免费看| 亚洲国产精品视频| 久久精品中文| 亚洲一区久久久| 亚洲国产精品一区二区第四页av| 国产精品视频第一区| 欧美激情综合色| 开元免费观看欧美电视剧网站| 亚洲视频电影图片偷拍一区| 亚洲国产欧美在线| 男人的天堂亚洲在线| 欧美专区日韩视频| 亚洲欧美国产制服动漫| 99国产精品国产精品久久| 亚洲福利视频一区| 一区精品久久| 韩国精品主播一区二区在线观看| 欧美视频在线观看一区|