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

隨筆 - 87  文章 - 279  trackbacks - 0
<2025年12月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

潛心看書研究!

常用鏈接

留言簿(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>
              亚洲一区二区三区中文字幕| 亚洲一区二区三区在线| 国产精品成人久久久久| 蜜臀99久久精品久久久久久软件| 欧美午夜视频网站| 亚洲国产精品成人va在线观看| 国产精品综合| 一级日韩一区在线观看| 日韩亚洲欧美一区二区三区| 久久精品国产免费看久久精品| 香蕉乱码成人久久天堂爱免费| 欧美日韩在线播放三区四区| 亚洲黄色小视频| 亚洲国内自拍| 久久躁狠狠躁夜夜爽| 狂野欧美一区| 海角社区69精品视频| 欧美一区二区三区日韩| 欧美在线观看视频一区二区| 国产精品美女久久久久久2018| 一本大道久久a久久精品综合| 日韩天堂在线观看| 欧美激情91| 亚洲日韩视频| 亚洲深夜福利视频| 国产精品大片| 亚洲欧美一区二区三区极速播放| 欧美一区二区成人6969| 国产日本欧美一区二区| 午夜精品久久久久久久久| 久久黄色网页| 国内精品美女av在线播放| 久久久久久**毛片大全| 欧美成人69| 91久久黄色| 欧美日韩精品综合| 亚洲特色特黄| 久久青草久久| 亚洲激情亚洲| 欧美午夜视频在线| 亚洲欧美综合v| 久久综合影视| 亚洲开发第一视频在线播放| 欧美日韩一视频区二区| 亚洲欧美中文另类| 美日韩精品免费观看视频| 亚洲国产精品一区二区三区| 欧美激情自拍| 亚洲一线二线三线久久久| 久久久免费av| 日韩视频在线一区二区| 国产精品一级在线| 久久裸体艺术| 日韩午夜精品视频| 久久久久久久波多野高潮日日| 亚洲国产精品成人精品| 欧美无砖砖区免费| 久久精品一区二区三区四区| 亚洲国产成人av| 欧美一级大片在线免费观看| 亚洲国产精品ⅴa在线观看 | 国产在线一区二区三区四区| 久久青草欧美一区二区三区| 夜夜嗨av色一区二区不卡| 久久精视频免费在线久久完整在线看| 亚洲国产精彩中文乱码av在线播放| 欧美日韩午夜视频在线观看| 欧美在线观看一区二区| 亚洲美女在线视频| 女女同性精品视频| 午夜精品在线看| 亚洲人成网站色ww在线| 国产欧美一二三区| 欧美日韩另类字幕中文| 久久精品国产在热久久| 在线视频精品| 国内精品国产成人| 欧美日韩免费观看中文| 久久网站免费| 午夜国产精品视频| 一本色道久久综合精品竹菊 | 中文欧美字幕免费| 亚洲大胆女人| 激情懂色av一区av二区av| 欧美三区不卡| 欧美国产精品一区| 久久久久九九九| 欧美亚洲在线| 亚洲你懂的在线视频| 欧美影院成人| 亚洲综合99| 亚洲婷婷综合色高清在线| 亚洲精品欧美| 亚洲二区在线视频| 在线免费观看欧美| 国产自产2019最新不卡| 国产日韩欧美在线观看| 国产精品网站在线观看| 欧美三级在线| 欧美日韩一区二区三区四区五区 | 久久天堂av综合合色| 欧美一级成年大片在线观看| 亚洲直播在线一区| 亚洲一区二区三区四区中文 | 香蕉亚洲视频| 亚洲免费一在线| 午夜精品久久久久久久99热浪潮| 一区二区三区**美女毛片| 妖精视频成人观看www| 99精品视频免费| 夜夜嗨av色一区二区不卡| 99re热精品| 亚洲视频国产视频| 亚洲欧美一区二区三区久久| 亚洲欧美日韩在线观看a三区| 亚洲欧美国产精品va在线观看| 亚洲天天影视| 香蕉精品999视频一区二区| 午夜精品区一区二区三| 久久成人一区| 久久综合九色99| 欧美理论电影网| 国产精品久久久对白| 国产亚洲精久久久久久| 一区在线电影| 日韩亚洲欧美一区| 性欧美在线看片a免费观看| 久久都是精品| 欧美二区在线播放| 一级成人国产| 久久精品国产99精品国产亚洲性色 | 国产午夜亚洲精品羞羞网站| 国产欧美一区二区三区沐欲| 黄色工厂这里只有精品| 亚洲精品小视频| 亚洲一区二区三区四区在线观看 | 国产精品免费观看在线| 国产亚洲欧美日韩精品| 亚洲欧洲综合另类| 亚洲一区二区三区中文字幕在线| 久久精品国产一区二区三区免费看 | 欧美黄色日本| 一区二区不卡在线视频 午夜欧美不卡在 | 一区二区激情| 亚洲影视中文字幕| 久久在线观看视频| 亚洲乱码国产乱码精品精98午夜 | 亚洲在线成人| 牛人盗摄一区二区三区视频| 国产精品夫妻自拍| 亚洲电影观看| 欧美一二三视频| 亚洲高清三级视频| 午夜在线播放视频欧美| 欧美激情一二三区| 国产亚洲成精品久久| av不卡在线| 久久蜜桃资源一区二区老牛 | 国产精品久久91| 亚洲精品国产拍免费91在线| 久久国产主播| 一本色道久久加勒比88综合| 久久久一二三| 国产中文一区二区| 午夜一级久久| 夜夜嗨av一区二区三区四季av | 久久久久久一区二区| 一本久久a久久精品亚洲| 免费观看在线综合色| 国产一区二区久久久| 亚洲一区国产视频| 亚洲青涩在线| 欧美 日韩 国产一区二区在线视频 | 欧美99在线视频观看| 国产精品亚洲片夜色在线| 日韩亚洲不卡在线| 亚洲成人在线视频播放 | 亚洲三级毛片| 久久综合伊人77777尤物| 国产午夜精品一区二区三区视频 | 伊人色综合久久天天| 久久久久国产精品一区二区| 亚洲综合电影| 国产精品久久久久久久电影 | 欧美一区高清| 亚洲午夜精品久久久久久app| 欧美男人的天堂| 亚洲免费观看| 亚洲精品乱码久久久久久蜜桃麻豆| 久久香蕉国产线看观看av| 韩国成人福利片在线播放| 久久精品男女| 欧美在线视频观看免费网站| 国产日韩一区| 久久久久五月天| 久久久久欧美精品| 亚洲黄色精品| 亚洲激情成人| 欧美日韩精品中文字幕| 亚洲一区二区久久|