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

隨筆 - 87  文章 - 279  trackbacks - 0
<2007年8月>
2930311234
567891011
12131415161718
19202122232425
2627282930311
2345678

潛心看書研究!

常用鏈接

留言簿(19)

隨筆分類(81)

文章分類(89)

相冊

ACM OJ

My friends

搜索

  •  

積分與排名

  • 積分 - 221146
  • 排名 - 118

最新評論

閱讀排行榜

評論排行榜

寫了個比較通用的堆,可直接用作優(yōu)先隊(duì)列

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參數(shù)均為外部編號,wt為其權(quán)值
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 閱讀(1313) 評論(4)  編輯 收藏 引用 所屬分類: 數(shù)據(jù)結(jié)構(gòu)與算法ACM題目

FeedBack:
# re: pku3268 dij+heap 2007-07-27 08:41 oyjpart
終于更新blog了。。。  回復(fù)  更多評論
  
# re: pku3268 dij+heap 2007-08-01 20:29 relic
不必n次dijkstra,只要把所有邊反向,再來一次dijkstra就可以了。算上第一次一共兩次dij  回復(fù)  更多評論
  
# re: pku3268 dij+heap 2007-08-03 22:58 
偷懶了:)  回復(fù)  更多評論
  
# re: pku3268 dij+heap 2007-09-18 13:16 drizzlecrj
@relic
re  回復(fù)  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
              亚洲精品少妇| 怡红院精品视频在线观看极品| 久久久xxx| 国产精品99久久久久久人| 欧美国产亚洲视频| 久久久久久999| 亚洲影院色无极综合| 亚洲国产欧洲综合997久久| 国产一区二区三区久久悠悠色av| 欧美午夜精品理论片a级大开眼界 欧美午夜精品理论片a级按摩 | 女同一区二区| 欧美在线视频a| 亚洲欧美日韩天堂一区二区| aa成人免费视频| 亚洲黄色小视频| 伊人久久综合97精品| 国产日韩综合一区二区性色av| 欧美丝袜一区二区三区| 欧美精品自拍偷拍动漫精品| 美女久久网站| 免费视频最近日韩| 麻豆成人在线播放| 久久久久一区二区| 久久视频精品在线| 久久久久亚洲综合| 久久久久国产精品厨房| 久久经典综合| 久久精视频免费在线久久完整在线看| 午夜在线a亚洲v天堂网2018| 一区二区三区日韩在线观看| 99在线精品观看| 亚洲神马久久| 亚洲在线一区二区| 亚洲欧美国产毛片在线| 亚洲性感美女99在线| 亚洲综合丁香| 欧美一级电影久久| 久久久噜噜噜久久久| 久久婷婷久久| 欧美成人精品h版在线观看| 欧美韩日高清| 欧美日韩伦理在线免费| 国产精品红桃| 国产日韩精品一区二区浪潮av| 国产亚洲在线观看| 1024成人网色www| 亚洲欧洲在线看| 夜夜嗨av一区二区三区四区| 亚洲性图久久| 久久精品国产亚洲精品| 男人的天堂亚洲在线| 亚洲国产免费看| 夜夜嗨av一区二区三区网页| 亚洲综合色婷婷| 久久精品女人天堂| 欧美顶级少妇做爰| 欧美小视频在线| 韩国精品在线观看| 亚洲精品国产精品乱码不99| 亚洲一区欧美| 免费不卡在线观看| 亚洲毛片av| 欧美在线观看视频一区二区| 欧美~级网站不卡| 国产精品毛片va一区二区三区 | 性欧美超级视频| 久久亚洲精品一区二区| 欧美区视频在线观看| 国产日韩高清一区二区三区在线| 在线欧美亚洲| 亚洲在线日韩| 欧美aa国产视频| 制服丝袜亚洲播放| 久久精品日韩欧美| 欧美体内谢she精2性欧美| 一区二区三区亚洲| 亚洲视频综合| 欧美va天堂va视频va在线| 在线亚洲观看| 卡一卡二国产精品| 国产精品三级久久久久久电影| 亚洲大片av| 欧美一区二区视频在线观看2020| 欧美阿v一级看视频| 亚洲一二三区精品| 欧美大片在线观看一区二区| 国产精品一区在线观看| 日韩一区二区精品| 狼人社综合社区| 亚洲一区影院| 欧美日韩高清在线一区| 在线欧美亚洲| 久久国产毛片| 亚洲视频导航| 欧美另类亚洲| 亚洲激情电影在线| 久久激情视频久久| 国产精品99久久久久久久久久久久| 欧美wwwwww| 狠狠色噜噜狠狠色综合久| 亚洲自啪免费| 99精品视频免费观看| 欧美国产日韩亚洲一区| 亚洲电影免费观看高清完整版在线 | 免费美女久久99| 午夜亚洲福利| 国产精品视频免费观看| 亚洲午夜精品网| 亚洲欧洲一区二区三区在线观看| 久久蜜桃精品| 伊人久久亚洲影院| 久久久亚洲综合| 亚洲欧美在线一区| 国产精品嫩草影院一区二区| 亚洲视频一区二区在线观看 | 久久国产直播| 国产亚洲欧美另类中文| 欧美一区二区三区免费看 | 亚洲精品专区| 欧美高清你懂得| 亚洲人成网站精品片在线观看| 蜜臀久久99精品久久久画质超高清| 亚洲欧美日本日韩| 国产欧美日韩精品a在线观看| 午夜视频久久久| 亚洲欧美国产日韩中文字幕| 国产精品日韩久久久久| 午夜精品www| 亚洲影院在线观看| 国产美女精品在线| 久久精品国产成人| 久久精品国产亚洲一区二区三区 | 久久精品国产第一区二区三区| 国产欧美丝祙| 欧美中文在线免费| 久久成人18免费网站| 精品不卡在线| 亚洲第一中文字幕| 亚洲欧美日韩一区在线| 亚洲欧美卡通另类91av | 欧美在线高清| 亚洲成色999久久网站| 亚洲国产精品电影| 欧美日韩在线亚洲一区蜜芽| 亚洲在线日韩| 久久精品国产99| 亚洲青涩在线| 99这里只有精品| 国产欧美精品日韩区二区麻豆天美| 久久精品二区| 久久综合九色综合网站| 99精品国产在热久久| 亚洲一区二区3| 国内精品美女在线观看| 欧美成人在线网站| 欧美日韩直播| 久久人91精品久久久久久不卡| 久久一区免费| 亚洲图片在线观看| 欧美一区二区啪啪| 亚洲精品日产精品乱码不卡| 中日韩美女免费视频网址在线观看| 国产日韩在线一区| 亚洲第一在线| 国产乱码精品| 亚洲国产mv| 国产精品一区二区久激情瑜伽| 暖暖成人免费视频| 国产精品h在线观看| 久久综合狠狠| 国产精品高精视频免费| 蘑菇福利视频一区播放| 欧美亚日韩国产aⅴ精品中极品| 久久人91精品久久久久久不卡| 欧美顶级大胆免费视频| 欧美中文字幕视频在线观看| 欧美成人午夜| 久久精品免费电影| 欧美日本一道本| 美女精品国产| 国产精品美女久久久浪潮软件| 欧美成人免费观看| 国产欧美精品va在线观看| 亚洲国产精品尤物yw在线观看| 国产伦精品一区二区三区免费 | 国产精品嫩草影院av蜜臀| 欧美国产日本高清在线| 国产日韩精品在线观看| 亚洲日本乱码在线观看| 激情成人综合网| 亚洲视频在线视频| 日韩一级网站| 久久婷婷国产综合国色天香| 午夜精品久久久久久99热软件| 欧美暴力喷水在线| 久久人人爽人人爽爽久久| 国产精品视频一| 一本久久a久久免费精品不卡| 亚洲国产专区| 久久久夜精品|