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

隨筆 - 87  文章 - 279  trackbacks - 0
<2006年3月>
2627281234
567891011
12131415161718
19202122232425
2627282930311
2345678

潛心看書研究!

常用鏈接

留言簿(19)

隨筆分類(81)

文章分類(89)

相冊

ACM OJ

My friends

搜索

  •  

積分與排名

  • 積分 - 221093
  • 排名 - 118

最新評論

閱讀排行榜

評論排行榜

寫了個比較通用的堆,可直接用作優先隊列

Silver Cow Party
Time Limit:2000MS  Memory Limit:65536K
Total Submit:1112 Accepted:326

Description

One cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered 1..N is going to attend the big cow party to be held at farm #X (1 ≤ XN). A total of M (1 ≤ M ≤ 100,000) unidirectional (one-way roads connects pairs of farms; road i requires Ti (1 ≤ Ti ≤ 100) units of time to traverse.

Each cow must walk to the party and, when the party is over, return to her farm. Each cow is lazy and thus picks an optimal route with the shortest time. A cow's return route might be different from her original route to the party since roads are one-way.

Of all the cows, what is the longest amount of time a cow must spend walking to the party and back?

 

Input
Line 1: Three space-separated integers, respectively: N, M, and X
Lines 2..M+1: Line i+1 describes road i with three space-separated integers: Ai, Bi, and Ti. The described road runs from farm Ai to farm Bi, requiring Ti time units to traverse.

Output
Line 1: One integer: the maximum of time any one cow must walk.

Sample Input

4 8 2
1 2 4
1 3 2
1 4 7
2 1 1
2 3 5
3 1 2
3 4 4
4 2 3

 

Sample Output

10

 

Hint
Cow 4 proceeds directly to the party (3 units) and returns via farms 1 and 3 (7 units), for a total of 10 time units.

Source
USACO 2007 February Silver



#include <iostream>
using namespace std;

const int INF = 1 << 28;

int adj[1001][1001], adjw[1001][1001], na[1001];
int n, m, x;


//heap sink,swim,getmin,insert參數均為外部編號,wt為其權值
int heap[100001], id[100001], hsize;
int *key;
void init(int s, int *wt) {
    
int i;
    hsize 
= s; 
    key 
= wt;
    
for (i=1; i<=hsize; i++{
        heap[i] 
= i;
        id[i] 
= i;
    }

}

void swim(int u) {
    
int p = id[u], q = p >> 1, ku = key[u];
    
while (q && ku < key[heap[q]]) {
        id[heap[q]] 
= p;
        heap[p] 
= heap[q];
        p 
= q;
        q 
= p >> 1;
    }

    id[u] 
= p;
    heap[p] 
= u;
}

void sink(int u) {
    
int p = id[u],q = p << 1, ku = key[u];
    
while (q <= hsize) {
        
if (q < hsize && key[heap[q+1]] < key[heap[q]]) q++;
        
if (key[heap[q]] >= ku) break;
        id[heap[q]] 
= p;
        heap[p] 
= heap[q];
        p 
= q; 
        q 
= p << 1;
    }

    id[u] 
= p;
    heap[p] 
= u;
}

int getmin() {
    
int ret = heap[1];
    id[ret] 
= -1;
    id[heap[hsize]] 
= 1;
    heap[
1= heap[hsize];
    hsize
--;
    sink(heap[
1]);
    
return ret;
}

void insert(int u) {
    heap[
++hsize] = u;
    id[u] 
= hsize;
    swim(u);
}

void build() {
    
int i;
    
for (i=hsize/2; i>0; i--) sink(heap[i]);
}

bool isEmpty() {
    
return hsize == 0;
}

int dijkstraHeap(int beg, int end=-1{
    
int i, j, k, u, v, w;
    
int dist[1001], chk[1001];
    
for (i=1; i<=n; i++{
        dist[i] 
= INF;
        chk[i] 
= 0;
    }

    init(n, dist);
    dist[beg] 
= 0; swim(beg);
    
while (!isEmpty()) {
        u 
= getmin();
        
if (u == end) break;
        chk[u] 
= 1;
        
for (i=0; i<na[u]; i++{
            v 
= adj[u][i];
            w 
= adjw[u][i];
            
if (dist[v] > dist[u] + w) {
                dist[v] 
= dist[u] + w;
                swim(v);
            }

        }

    }

    
if (end == -1return dist[n];
    
return dist[end];
}


int main() {
    
int i, j, k, u, v, w;
    
int val[1001];
    scanf(
"%d%d%d"&n, &m, &x);
    
for (i=0; i<m; i++{
        scanf(
"%d%d%d"&u, &v, &w);
        adj[u][na[u]] 
= v; 
        adjw[u][na[u]] 
= w;
        na[u]
++;
    }

   
    dijkstraHeap(x);
    memcpy(val, key, 
sizeof(val));
    
    
int ans = 0;
    
for (i=1; i<=n; i++{
        
int tmp = dijkstraHeap(i,x);
        
if (tmp+val[i] > ans) ans = tmp + val[i];
    }

    
    printf(
"%d\n", ans);
    
return 0;
}
posted on 2007-07-23 20:51 閱讀(1312) 評論(4)  編輯 收藏 引用 所屬分類: 數據結構與算法ACM題目

FeedBack:
# re: pku3268 dij+heap 2007-07-27 08:41 oyjpart
終于更新blog了。。。  回復  更多評論
  
# re: pku3268 dij+heap 2007-08-01 20:29 relic
不必n次dijkstra,只要把所有邊反向,再來一次dijkstra就可以了。算上第一次一共兩次dij  回復  更多評論
  
# re: pku3268 dij+heap 2007-08-03 22:58 
偷懶了:)  回復  更多評論
  
# re: pku3268 dij+heap 2007-09-18 13:16 drizzlecrj
@relic
re  回復  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
              国产片一区二区| 久久久久国产精品www| 欧美福利视频| 夜夜嗨网站十八久久| 欧美一区二区视频在线| 午夜精品视频在线观看一区二区| 欧美三级视频在线播放| 一区二区三区在线视频免费观看| 一区二区三区高清不卡| 另类亚洲自拍| 亚洲一区网站| 在线观看欧美亚洲| 欧美一区二区日韩一区二区| 久久精品噜噜噜成人av农村| 国产精品男人爽免费视频1| 亚洲三级色网| 亚洲欧美国产77777| 狠狠色香婷婷久久亚洲精品| 亚洲国产日韩欧美综合久久| 香蕉av777xxx色综合一区| 激情懂色av一区av二区av| 91久久精品国产91久久性色| 久久在线91| 亚洲综合色噜噜狠狠| 久久久久国产精品厨房| 一本综合精品| 久久久久久久成人| 在线亚洲精品| 久久先锋资源| 欧美在线观看视频一区二区三区 | 亚洲国产福利在线| 国产精品专区一| 欧美一区激情视频在线观看| 亚洲在线第一页| 国产精品视频福利| 亚洲欧美欧美一区二区三区| 99精品福利视频| 在线免费一区三区| 亚洲一区尤物| 国产综合视频在线观看| 久久精品亚洲精品| 久久精品国产综合精品| 亚洲一区成人| 欧美高清一区| 亚洲影院免费| 欧美日本一道本在线视频| 久久亚洲欧洲| 国产综合色产| 午夜亚洲福利在线老司机| 亚洲深夜福利| 亚洲欧美激情四射在线日 | 亚洲精品欧美极品| 亚洲精品日韩在线| 国产精品久久毛片a| 欧美尤物巨大精品爽| 欧美日韩无遮挡| 亚洲欧洲一区二区在线播放| 亚洲福利精品| 久久婷婷影院| 亚洲欧美日韩一区二区三区在线| 欧美二区在线| 亚洲国产欧美另类丝袜| 亚洲激情影院| 亚洲免费视频成人| 亚洲欧美国产一区二区三区| 欧美视频不卡| 欧美成人小视频| 欧美午夜精品久久久久久超碰| 欧美一级大片在线免费观看| 国产精品乱码妇女bbbb| 亚洲专区欧美专区| 欧美与黑人午夜性猛交久久久| 国产精品一区在线播放| 午夜视频一区二区| 久久香蕉国产线看观看网| 欧美日韩高清区| 日韩小视频在线观看专区| 亚洲永久免费观看| 母乳一区在线观看| 久久福利精品| 国产一区二区在线观看免费| 亚洲免费高清视频| 亚洲国产精品99久久久久久久久| 99视频一区二区三区| 国内精品视频在线播放| 久久亚洲综合色| 久久精品视频在线| 亚洲第一区色| 欧美日韩综合| 久久精品免费看| 亚洲欧洲精品一区二区精品久久久| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲一区不卡| 亚洲一区二区三区精品在线观看| 久久久xxx| 亚洲人成欧美中文字幕| 亚洲在线观看免费视频| 欧美日韩美女在线| 午夜精品久久久久久| 亚洲欧美国产一区二区三区| 欧美成人蜜桃| 欧美成人小视频| 亚洲综合导航| 亚洲黄色在线| 国产嫩草影院久久久久 | 亚洲影音一区| 欧美成人免费全部| 亚洲欧美日韩视频一区| 亚洲国产婷婷| 免费在线观看一区二区| 欧美二区在线观看| 亚洲国产欧美在线人成| 国产精品美女久久久久久久| 久久综合九色综合欧美就去吻| 亚洲深夜av| 亚洲黄页一区| 免费欧美在线| 久久国产精品电影| 亚洲午夜视频| 99pao成人国产永久免费视频| 国产亚洲欧美日韩一区二区| 欧美日韩一级片在线观看| 老司机精品久久| 亚洲国产精品视频| 一区二区三区 在线观看视| 黄色成人av在线| 国产日韩在线看片| 国产精品成人aaaaa网站 | 亚洲男人的天堂在线aⅴ视频| 亚洲欧美三级在线| 国产一区欧美| 国产农村妇女毛片精品久久麻豆 | 理论片一区二区在线| 久久精品成人| 欧美夜福利tv在线| 尤物网精品视频| 黄色亚洲免费| 欧美久久婷婷综合色| 99精品国产在热久久下载| 欧美一区二区三区免费观看| 亚洲一区在线观看免费观看电影高清| 国产精品一区免费视频| 国产精品vvv| 欧美日韩日本国产亚洲在线| 欧美美女bbbb| 久久国内精品自在自线400部| 亚洲成色777777在线观看影院| 免费观看一区| 久久色在线观看| 亚洲午夜91| 午夜一级在线看亚洲| 欧美在线影院| 猛干欧美女孩| 欧美激情免费在线| 欧美视频久久| 国产精品一区免费视频| 欧美成人精品h版在线观看| 麻豆久久久9性大片| 欧美激情欧美激情在线五月| 欧美日韩精品久久| 国产精品视频yy9299一区| 另类综合日韩欧美亚洲| 亚洲欧美日韩系列| 久久久久久久久蜜桃| 免费影视亚洲| 国产精品国产精品国产专区不蜜| 国产精品欧美一区二区三区奶水| 玖玖视频精品| 欧美三级乱人伦电影| 欧美交受高潮1| 国产精品老牛| 欧美三级午夜理伦三级中视频| 国产精品无码专区在线观看| 欧美日韩精品免费观看视频| 国产精品视频免费| 国产一区二区三区成人欧美日韩在线观看| 欧美影院成人| 亚洲男女自偷自拍| 一本色道久久综合狠狠躁篇的优点| 欧美成人日韩| 久久手机免费观看| 亚洲精品视频一区| 欧美在线免费视频| 欧美精品免费视频| 激情久久综艺| 影音先锋久久资源网| 一本色道婷婷久久欧美| 日韩西西人体444www| 在线成人激情| 午夜亚洲影视| 亚洲清纯自拍| 中国日韩欧美久久久久久久久| 久久久999精品视频| 欧美视频在线观看| 亚洲黄一区二区| 99热在这里有精品免费| 久久综合狠狠| 欧美激情第8页| 久久成人亚洲| 国产欧美日韩不卡|