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

隨筆 - 87  文章 - 279  trackbacks - 0
<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

潛心看書研究!

常用鏈接

留言簿(19)

隨筆分類(81)

文章分類(89)

相冊

ACM OJ

My friends

搜索

  •  

積分與排名

  • 積分 - 219407
  • 排名 - 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 閱讀(1300) 評論(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>
              国产精品电影网站| 亚洲欧美bt| 亚洲视频1区2区| 亚洲成人直播| 一区在线影院| 国内视频一区| 亚洲国产精品久久久久婷婷884 | 久久精品午夜| 亚洲性图久久| 欧美在线视频播放| 久久一区精品| 欧美日韩一区二区三区免费| 欧美亚洲成人免费| 国产欧美精品在线| 在线日韩成人| 一区二区三区欧美视频| 亚洲在线网站| 久久在线免费观看视频| 欧美激情视频在线播放 | 裸体歌舞表演一区二区| 亚洲精品1区2区| 久久综合五月| 99精品国产一区二区青青牛奶| 日韩亚洲欧美成人一区| 午夜影视日本亚洲欧洲精品| 美日韩精品免费| 日韩一区二区免费看| 久久精品一区二区三区四区| 欧美精品入口| 国产亚洲精品高潮| 9i看片成人免费高清| 久久久夜色精品亚洲| 一本色道久久综合亚洲二区三区| 久久岛国电影| 国产精品捆绑调教| 日韩午夜激情电影| 欧美肥婆在线| 久久精品视频在线看| 国产精品伦一区| 亚洲午夜伦理| 亚洲精品乱码久久久久久蜜桃麻豆| 久久精品99国产精品日本| 国产精品高清网站| 国产精品99久久久久久白浆小说| 欧美国产高清| 久久精品亚洲| 欧美在线www| 一区在线影院| 国产精品不卡在线| 国产精品亚洲综合色区韩国| 亚洲欧洲精品天堂一级| 午夜一区二区三区不卡视频| 久久精品一区二区三区四区| 亚洲精品亚洲人成人网| 国产一区二区精品久久99| 久久这里只有| 亚洲日本视频| 国产精品午夜在线| 亚洲欧美国产高清va在线播| 亚洲桃花岛网站| 欧美一区激情| 亚洲精品在线电影| 免费短视频成人日韩| 激情久久久久久| 欧美国产视频在线| 小嫩嫩精品导航| 久久er精品视频| 欧美成人在线影院| 在线色欧美三级视频| 亚洲视频图片小说| 9人人澡人人爽人人精品| 99精品免费| 亚洲欧洲99久久| 国产精品一区三区| 久久精品夜夜夜夜久久| 欧美成人精品一区二区| 亚洲一区二区免费在线| 中文在线资源观看网站视频免费不卡 | 激情久久婷婷| 亚洲性视频h| 99这里只有久久精品视频| 欧美日韩欧美一区二区| 亚洲精品日韩激情在线电影| 香蕉久久夜色精品国产| 精品va天堂亚洲国产| 欧美成人一区二区在线| 亚洲蜜桃精久久久久久久| 亚洲一区二区三区成人在线视频精品| 亚洲永久免费| 亚洲激情在线视频| 亚洲欧洲日本一区二区三区| 老妇喷水一区二区三区| 欧美国产大片| 欧美大片18| 亚洲视频一二| 免费在线观看精品| 欧美在线一二三区| 欧美v国产在线一区二区三区| 亚洲欧美一区二区视频| 欧美大片91| 欧美激情在线| 99精品视频免费全部在线| 亚洲精选大片| 午夜在线a亚洲v天堂网2018| 一本色道久久精品| 欧美www视频在线观看| 久久久伊人欧美| 亚洲第一精品夜夜躁人人躁 | 亚洲激情成人| 一区二区精品在线| 国内成人精品视频| 最新日韩中文字幕| 国内精品久久久| 亚洲激情欧美| 黄色日韩精品| 亚洲人成毛片在线播放女女| 久久综合网hezyo| 欧美成人精品在线观看| 久久久国产亚洲精品| 亚洲美女视频网| 欧美中文在线免费| 亚洲图片欧美日产| 久久综合伊人77777麻豆| 久久爱www久久做| 欧美系列亚洲系列| 亚洲国产另类 国产精品国产免费| 国产亚洲aⅴaaaaaa毛片| 亚洲美女黄色| 亚洲毛片av| 欧美大片免费| 亚洲国产另类久久精品| 欧美一区成人| 久久成人人人人精品欧| 欧美理论片在线观看| 久久久久99| 国产日韩精品一区二区三区| 亚洲乱码国产乱码精品精天堂| 在线欧美小视频| 一区二区三区视频在线看| 久久天堂精品| 久久久精品国产免费观看同学| 国产精品久久久久天堂| 最新日韩在线| 亚洲精品免费网站| 欧美亚州一区二区三区| 久久久久国色av免费看影院 | 久久久久久香蕉网| 午夜精品福利在线| 在线观看一区视频| 国产女同一区二区| 国产日本欧美一区二区三区| 欧美电影在线观看完整版| 欧美亚洲免费高清在线观看| 亚洲欧洲精品天堂一级| 免费成人在线观看视频| 亚洲国产欧美久久| 欧美国产欧美亚洲国产日韩mv天天看完整 | 欧美精品一区三区在线观看| 午夜国产精品视频| 欧美在线观看视频在线| 久久久久九九视频| 午夜精品福利视频| 久久精品91| 久久蜜臀精品av| 欧美wwwwww| 亚洲免费激情| 国产区精品视频| 亚洲第一在线| 亚洲免费网站| 亚洲黄色影片| 亚洲伊人网站| 欧美成人精品激情在线观看| 亚洲国产精品成人综合| 亚洲永久免费| 亚洲人成人77777线观看| 久久精品亚洲一区二区三区浴池 | 亚洲无限av看| 欧美v国产在线一区二区三区| 99日韩精品| 欧美日韩国产小视频| 亚洲美女区一区| 中文国产亚洲喷潮| 亚洲日本中文字幕| 亚洲一级网站| 亚洲欧洲在线视频| 欧美中日韩免费视频| 久久久国产精品亚洲一区 | 黄色成人免费观看| 久久久久久久一区二区| 欧美黑人一区二区三区| 亚洲一区二区三区在线观看视频| 国产精品vvv| 欧美**字幕| 亚洲欧美日韩综合国产aⅴ| 久久久噜噜噜久久狠狠50岁| 宅男在线国产精品| 欧美制服第一页| 亚洲精品国久久99热| 国产亚洲成av人在线观看导航| 亚洲黄色免费|