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

隨筆 - 87  文章 - 279  trackbacks - 0
<2010年5月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

潛心看書研究!

常用鏈接

留言簿(19)

隨筆分類(81)

文章分類(89)

相冊(cè)

ACM OJ

My friends

搜索

  •  

積分與排名

  • 積分 - 219408
  • 排名 - 118

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

寫了個(gè)比較通用的堆,可直接用作優(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ù)均為外部編號(hào),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 閱讀(1300) 評(píng)論(4)  編輯 收藏 引用 所屬分類: 數(shù)據(jù)結(jié)構(gòu)與算法ACM題目

FeedBack:
# re: pku3268 dij+heap 2007-07-27 08:41 oyjpart
終于更新blog了。。。  回復(fù)  更多評(píng)論
  
# re: pku3268 dij+heap 2007-08-01 20:29 relic
不必n次dijkstra,只要把所有邊反向,再來一次dijkstra就可以了。算上第一次一共兩次dij  回復(fù)  更多評(píng)論
  
# re: pku3268 dij+heap 2007-08-03 22:58 
偷懶了:)  回復(fù)  更多評(píng)論
  
# re: pku3268 dij+heap 2007-09-18 13:16 drizzlecrj
@relic
re  回復(fù)  更多評(píng)論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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| 六月婷婷久久| 欧美性猛交xxxx乱大交退制版| 一区二区欧美在线观看| 久久免费精品日本久久中文字幕| 在线激情影院一区| 亚洲自拍偷拍一区| 亚洲综合国产| 国产精品99免费看| 日韩午夜高潮| 亚洲一区二区视频| 亚洲婷婷综合久久一本伊一区| 欧美视频一区在线| 亚洲激情视频| 韩国av一区| 久久久久一区| 99精品视频免费| 噜噜噜91成人网| 欧美激情亚洲另类| 最新亚洲一区| 欧美激情日韩| 夜夜嗨av色一区二区不卡| 一道本一区二区| 欧美日韩国产综合视频在线观看中文 | 欧美激情偷拍| 亚洲片区在线| 亚洲午夜精品一区二区三区他趣| 久久成人一区| 美国成人毛片| 亚洲精品欧美激情| 欧美激情中文字幕一区二区| 亚洲欧美在线观看| 国产精品视频yy9099| 欧美国产91| 日韩视频一区二区在线观看| 欧美一区二区三区免费看 | 欧美成人国产va精品日本一级| 亚洲一区二区三区免费观看| 国产精品久久久久久久app| 欧美电影资源| 国产精品www色诱视频| 亚洲性夜色噜噜噜7777| 91久久极品少妇xxxxⅹ软件| 欧美激情一区二区三区高清视频| 久久久av毛片精品| 尤物网精品视频| 欧美日韩高清在线播放| 欧美高清你懂得| 中文欧美字幕免费| 国模一区二区三区| 欧美日韩麻豆| 欧美中文字幕第一页| 欧美激情一区二区三区在线视频| 激情久久久久久久久久久久久久久久| 亚洲精品影院| 久久国内精品视频| 一区二区欧美在线观看| 国产午夜亚洲精品羞羞网站 | 免费av成人在线| 一区二区三区视频在线看| 国产综合av| 欧美视频在线观看| 老鸭窝91久久精品色噜噜导演| 欧美一区二区精品在线| 亚洲人成亚洲人成在线观看图片 | 亚洲综合电影| 亚洲成色777777女色窝| 午夜在线成人av| av成人激情| 影音先锋久久精品| 国产精品丝袜91| 欧美精品在线观看播放| 欧美专区在线播放| 在线午夜精品自拍| 亚洲精品久久久久| 女同性一区二区三区人了人一| 伊人夜夜躁av伊人久久| 国产精品久久久久久模特| 欧美激情aⅴ一区二区三区| 欧美一区二区三区免费在线看| 久久九九免费| 激情久久久久| 国产日韩在线视频| 久久aⅴ国产紧身牛仔裤| 一区二区三区不卡视频在线观看| 亚洲免费伊人电影在线观看av| 欧美性猛交99久久久久99按摩 | 国产精品一区二区女厕厕| 欧美高清影院| 女女同性女同一区二区三区91| 欧美国产精品劲爆| 午夜精品久久久久久久99樱桃| 国产亚洲精品久久久久婷婷瑜伽| 欧美在线免费视屏| 在线亚洲电影| 久久久久久国产精品mv| 亚洲国产精品久久久久婷婷884| 欧美大秀在线观看| 老司机午夜精品视频在线观看| 亚洲精品国产系列| 亚洲精品一区二区在线| 亚洲欧洲一区二区三区在线观看| 亚洲中字在线| 先锋影音久久| 久久不射网站| 久久一区二区三区四区五区| 久久综合久久美利坚合众国| 乱中年女人伦av一区二区| 久久久91精品国产一区二区三区 | 欧美黑人多人双交| 一区二区电影免费观看| 亚洲精品国产精品乱码不99| 99视频在线观看一区三区| 国产日韩欧美另类| 国产亚洲成精品久久| 黄色日韩网站| 亚洲精品视频一区| 国产在线乱码一区二区三区| 欧美激情成人在线视频| 欧美另类一区| 羞羞色国产精品| 久久久久久久久久久久久女国产乱| 一本色道久久综合亚洲二区三区| 久久综合导航| 亚洲国产精品久久久久| 久久人人爽人人爽| 中文在线不卡视频| 欧美一区二区在线免费播放| 一本久久综合亚洲鲁鲁| 午夜老司机精品| 老妇喷水一区二区三区| 91久久极品少妇xxxxⅹ软件| 中文亚洲欧美| 99re热这里只有精品视频| 亚洲自拍偷拍色片视频| 久久噜噜噜精品国产亚洲综合 | 久久国产乱子精品免费女| 久久久午夜精品| 欧美激情视频在线免费观看 欧美视频免费一 | 久久综合中文字幕| 亚洲第一搞黄网站| 一区二区三区国产在线观看| 久久精品中文字幕一区二区三区| 一区二区三区欧美| 久久久国产一区二区三区| 欧美成人精品三级在线观看| 国产精品亚洲а∨天堂免在线| 欧美日韩国语| 极品尤物av久久免费看 | 国产乱人伦精品一区二区| 在线观看视频欧美| 欧美一区二区三区在| 亚洲电影免费在线观看| 欧美激情一区二区三区全黄 | 欧美日韩在线播放三区| 欧美精品久久久久久久免费观看| 老司机午夜精品视频在线观看| 久久蜜桃精品| 国产精品一区二区男女羞羞无遮挡| 欧美日韩中文在线| 亚洲电影免费观看高清完整版在线观看 | 欧美日韩中文字幕| 在线日韩中文字幕| 久久久精品五月天| 亚洲一区二区三区四区在线观看| 亚洲一区二区网站| 亚洲一区精品电影| 欧美日本免费| 亚洲国产裸拍裸体视频在线观看乱了中文 | 欧美激情国产高清| 久久久999精品| 国产日韩精品一区二区| 亚洲午夜影视影院在线观看| 亚洲黄色影片| 久色成人在线| 在线观看免费视频综合| 久久噜噜噜精品国产亚洲综合 | 日韩一级大片在线| 欧美激情成人在线视频| 在线日本高清免费不卡| 免费成人高清在线视频| 欧美一区在线直播| 国产精品亚洲综合色区韩国| 亚洲女人天堂成人av在线| 亚洲三级免费观看| 欧美国产另类| 一区二区三区四区蜜桃| 久久福利一区| 性欧美暴力猛交69hd| 久久久国产成人精品| 欧美精品v日韩精品v韩国精品v | 看片网站欧美日韩| 欧美日韩在线第一页| 中文在线资源观看网站视频免费不卡 | 亚洲一区二区三区视频播放| 亚洲免费观看高清在线观看 |