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

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

潛心看書研究!

常用鏈接

留言簿(19)

隨筆分類(81)

文章分類(89)

相冊

ACM OJ

My friends

搜索

  •  

積分與排名

  • 積分 - 221064
  • 排名 - 118

最新評論

閱讀排行榜

評論排行榜

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

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為其權值
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)  編輯 收藏 引用 所屬分類: 數(shù)據(jù)結構與算法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>
              9人人澡人人爽人人精品| 99re66热这里只有精品4| 欧美女激情福利| 久久精品欧洲| 欧美日韩日日骚| 亚洲国产99精品国自产| 国产午夜精品久久久久久免费视| 91久久精品国产91久久| 在线观看国产欧美| 欧美一区二区三区久久精品| 亚洲五月婷婷| 欧美精品一区二| 欧美大片在线观看一区二区| 国内精品久久久| 欧美在线视频观看免费网站| 亚洲欧美成人一区二区在线电影 | 亚洲欧洲在线观看| 久久高清国产| 久久久精品国产一区二区三区| 欧美性猛交一区二区三区精品| 亚洲成色精品| 亚洲精品免费一二三区| 狂野欧美性猛交xxxx巴西| 麻豆精品视频在线观看视频| 精品盗摄一区二区三区| 久久精品国产一区二区三区免费看| 性娇小13――14欧美| 国产精品日韩欧美大师| 亚洲午夜久久久久久尤物| 亚洲欧美日韩在线观看a三区| 欧美日韩日日骚| 一本久道久久综合中文字幕| 亚洲免费中文字幕| 国产精品一二三| 欧美亚洲色图校园春色| 久久精品国产亚洲aⅴ| 国产一区二区看久久| 欧美一站二站| 蜜桃精品久久久久久久免费影院| 在线观看av不卡| 女主播福利一区| 91久久夜色精品国产九色| 正在播放亚洲| 国产乱码精品一区二区三区不卡 | 国产精品激情偷乱一区二区∴| 99国产精品久久| 欧美一区国产一区| 狠狠色丁香婷婷综合| 毛片一区二区三区| 日韩香蕉视频| 久久久中精品2020中文| 亚洲黑丝一区二区| 国产精品成人一区二区三区吃奶| 性久久久久久| 91久久在线播放| 久久成人精品视频| 91久久夜色精品国产九色| 欧美性开放视频| 久久亚洲精品网站| 99精品福利视频| 美女精品自拍一二三四| 亚洲午夜在线观看| 在线观看一区二区精品视频| 欧美久久久久久久久| 午夜精品久久久久久久99水蜜桃| 欧美va亚洲va香蕉在线| 亚洲欧美大片| 亚洲国产三级| 国产精品成人国产乱一区| 久久精品国产精品| 99热在这里有精品免费| 免费91麻豆精品国产自产在线观看 | 牛牛影视久久网| 午夜精品网站| 亚洲精品免费网站| 美女尤物久久精品| 亚洲网站视频| 亚洲国产成人久久综合一区| 国产精品欧美久久久久无广告| 久久久91精品国产一区二区精品| 一区二区欧美国产| 亚洲高清在线| 欧美jizzhd精品欧美巨大免费| 亚洲影视在线| 亚洲免费电影在线观看| 在线日韩视频| 国产视频在线观看一区二区| 欧美日韩精选| 欧美激情一区在线| 麻豆久久精品| 久久综合999| 久久精品99国产精品日本| 亚洲欧美在线aaa| 一本色道**综合亚洲精品蜜桃冫| 亚洲国产精品999| 免费一级欧美片在线观看| 久久精品三级| 久久精选视频| 久久激情五月丁香伊人| 欧美一级片久久久久久久| 亚洲一区二区成人| 亚洲性夜色噜噜噜7777| 亚洲一级在线| 亚洲网站视频福利| 亚洲天堂第二页| 亚洲一区二区高清| 亚洲一二三区精品| 99热免费精品| 亚洲视频第一页| 亚洲一区二区三区中文字幕| 亚洲天堂网在线观看| 亚洲一区二区三区高清| 亚洲一区在线播放| 羞羞色国产精品| 久久久久久久91| 久久综合色一综合色88| 麻豆精品视频在线观看视频| 欧美成人自拍| 亚洲丁香婷深爱综合| 亚洲黄网站在线观看| 亚洲精品女av网站| 91久久久久| 在线中文字幕不卡| 亚洲欧美日韩在线观看a三区| 午夜精品久久久久久久久久久久 | 欧美日韩1234| 国产精品盗摄一区二区三区| 国产精品丝袜xxxxxxx| 国产亚洲欧美色| 亚洲国产美女精品久久久久∴| 亚洲伦理在线观看| 亚洲你懂的在线视频| 久久久久久**毛片大全| 欧美国产日韩一区二区三区| 亚洲精品一区久久久久久| 亚洲综合色噜噜狠狠| 久久久国产一区二区| 欧美精品三级日韩久久| 国产精品入口夜色视频大尺度| 国语自产在线不卡| 亚洲美女中出| 久久成人综合网| 欧美激情麻豆| 亚洲香蕉在线观看| 免费观看欧美在线视频的网站| 欧美日韩专区| 尤物yw午夜国产精品视频明星| 一本色道久久加勒比精品| 欧美在线视频在线播放完整版免费观看| 久久婷婷麻豆| 99在线热播精品免费| 久久久国产成人精品| 欧美日韩精品免费在线观看视频| 国产欧美高清| 99精品国产在热久久| 久久人人爽人人爽爽久久| 日韩视频在线免费观看| 久久野战av| 国产精品一区在线观看| 亚洲美女电影在线| 久久综合久久久久88| 亚洲午夜激情免费视频| 欧美成年视频| 激情综合色综合久久| 欧美一区二区三区啪啪| 亚洲精品免费一区二区三区| 久久婷婷国产麻豆91天堂| 国产精品视频九色porn| 99精品视频一区| 亚洲大片免费看| 欧美在线网站| 国产精品婷婷| 亚洲综合导航| 99视频精品免费观看| 欧美大片在线观看一区二区| 国产亚洲精品久久久久婷婷瑜伽 | 一本色道久久精品| 欧美激情综合| 亚洲国产裸拍裸体视频在线观看乱了中文 | 久久免费视频在线| 国产欧美一区二区精品性色 | 日韩视频一区二区在线观看| 蜜桃伊人久久| 久久精品国产视频| 国产一区自拍视频| 久久国产毛片| 午夜国产精品视频| 国产精品尤物福利片在线观看| 中国成人亚色综合网站| 亚洲美女av网站| 欧美日韩999| 在线亚洲一区观看| 99国产精品国产精品毛片| 欧美日韩一区二区在线观看| 一区二区三区黄色| 一区二区日韩伦理片| 国产精品久久久久久福利一牛影视 | 欧美国产1区2区| 99精品国产在热久久下载| 亚洲日本中文字幕|