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

T9的空間

You will never walk alone!

  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
  69 隨筆 :: 0 文章 :: 28 評論 :: 0 Trackbacks

對于Dijkstra想做個(gè)總結(jié),于是2387來了許多遍
第一次,很久以前的,那個(gè)時(shí)候還沒認(rèn)真想過Dij,我居然把循環(huán)都做完了,而不是找到目標(biāo)點(diǎn)就跳出。覺得學(xué)的時(shí)候自己好多東西沒認(rèn)真想。

 1/*****************************
 2Source Code
 3
 4Problem: 2387  User: Torres 
 5Memory: 4164K  Time: 94MS 
 6Language: C++  Result: Accepted 
 7******************************/

 8#include<iostream>
 9using namespace std;
10#define MAX 1005
11const int oo=10000000;
12int dist[MAX][MAX];
13int close[MAX];
14bool used[MAX];
15
16int main()
17{
18    int N,T,i,j;
19    int s,e,len;
20    scanf("%d%d",&T,&N);
21    memset(dist,0x7f,sizeof(dist));
22    memset(used,false,sizeof(used));
23    memset(close,0x7f,sizeof(close));
24    for(i=1;i<=T;i++){
25        scanf("%d%d%d",&s,&e,&len);
26        if(dist[s][e]>len)
27            dist[s][e]=dist[e][s]=len;
28    }

29    for(i=2;i<=N;i++)close[i]=dist[1][i];
30    used[1]=true;
31    for(i=2;i<=N;i++){
32        int min=0;int mlen=oo;
33        for(j=2;j<=N;j++)
34            if(!used[j]&&close[j]<mlen)
35                min=j,mlen=close[j];
36        used[min]=true;
37        for(j=2;j<=N;j++)
38            if(!used[j]&&dist[min][j]<oo){
39                int temp=dist[min][j]+close[min];
40                if(temp<close[j])
41                    close[j]=temp;
42            }

43    }

44    printf("%d\n",close[N]);
45    return 0;
46}

47
48

第二次用鏈表了內(nèi)存降下來了
 1Source Code
 2
 3Problem: 2387  User: Torres 
 4Memory: 488K  Time: 110MS 
 5Language: G++  Result: Accepted 
 6
 7Source Code 
 8#include<iostream>
 9#include<algorithm>
10#include<vector>
11using namespace std;
12#define Nmax 1005
13#define oo 0x7fffffff
14
15typedef struct node{
16    int end,len;
17    node(int a=0,int b=oo):end(a),len(b){};
18}
node;
19
20vector<node>dist[Nmax];
21
22int main()
23{
24    int T,N,i,j;
25    int s,e,l;
26    scanf("%d%d",&T,&N);
27    for(i=1;i<=T;i++){
28        scanf("%d%d%d",&s,&e,&l);
29        dist[s].push_back(node(e,l));
30        dist[e].push_back(node(s,l));
31    }

32    vector<bool>used(N+1,false);
33    vector<int>closed(N+1,oo);
34    used[1]=true;
35    int len=dist[1].size();
36    for(i=0;i<len;i++
37        if(closed[dist[1][i].end]>dist[1][i].len)
38            closed[dist[1][i].end]=dist[1][i].len;
39    for(i=1;i<N;i++){
40        int min=0,minlen=oo;
41        for(j=2;j<=N;j++)
42            if(!used[j]&&closed[j]<minlen){
43                min=j;
44                minlen=closed[j];
45            }

46        used[min]=true;
47        for(j=0;j<dist[min].size();j++)
48            if(!used[dist[min][j].end]&&minlen+dist[min][j].len<closed[dist[min][j].end])
49                closed[dist[min][j].end]=minlen+dist[min][j].len;
50    }

51    printf("%d\n",closed[N]);
52    return 0;
53}

54
55

第三次用了priority_queue
 1Source Code
 2
 3Problem: 2387  User: Torres 
 4Memory: 496K  Time: 63MS 
 5Language: G++  Result: Accepted 
 6
 7Source Code 
 8#include<iostream>
 9#include<vector>
10#include<algorithm>
11#include<queue>
12using namespace std;
13
14const int Nmax=1005;
15const int oo=0x7fffffff;
16
17typedef struct node{
18    int end,len;
19    node(int a=0,int b=oo):end(a),len(b){};
20    bool operator<(const node &a)const{
21        return this->len>a.len;
22    }

23}
node;
24
25vector<node>dist[Nmax];
26
27int main()
28{
29    int N,M,i,j;
30    int s,e,l;
31    scanf("%d%d",&M,&N);
32    for(i=1;i<=M;i++){
33        scanf("%d%d%d",&s,&e,&l);
34        dist[s].push_back(node(e,l));
35        dist[e].push_back(node(s,l));
36    }

37
38    vector<int>closed(N+1,oo);
39    vector<bool>used(N+1,false);
40    priority_queue<node>minclosed;
41    int sz=dist[1].size();
42    
43    for(i=0;i<sz;i++){
44        closed[dist[1][i].end]=dist[1][i].len;
45        minclosed.push(dist[1][i]);
46    }

47    used[1]=true;
48
49    for(i=1;i<N;i++){
50        while(used[minclosed.top().end])
51            minclosed.pop();
52        node ntemp=minclosed.top();
53        if(ntemp.end==N||ntemp.len==oo){closed[N]=ntemp.len;break;}
54        minclosed.pop();
55        used[ntemp.end]=true;
56
57        sz=dist[ntemp.end].size();
58
59        for(j=0;j<sz;j++){
60            int en=dist[ntemp.end][j].end;
61            int le=ntemp.len+dist[ntemp.end][j].len;
62            if(!used[en]&&le<closed[en]){
63                closed[en]=le;
64                minclosed.push(node(en,le));
65            }

66        }

67        
68    }

69    printf("%d\n",closed[N]);
70    return 0;
71}

72
73

第四次用了heap
 1Source Code
 2
 3Problem: 2387  User: Torres 
 4Memory: 496K  Time: 63MS 
 5Language: G++  Result: Accepted 
 6
 7Source Code 
 8#include<iostream>
 9#include<vector>
10#include<algorithm>
11using namespace std;
12
13const int Nmax=1005;
14const int oo=0x7fffffff;
15
16typedef struct node{
17    int end,len;
18    node(int a,int b):end(a),len(b){};
19    bool operator<(const node &a)const{
20        return this->len>a.len;
21    }

22}
node;
23
24vector<node>dist[Nmax];
25
26int main()
27{
28    int N,M,i,j;
29    int s,e,l;
30    scanf("%d%d",&M,&N);
31    for(i=1;i<=M;i++){
32        scanf("%d%d%d",&s,&e,&l);
33        dist[s].push_back(node(e,l));dist[e].push_back(node(s,l));
34    }

35
36    vector<int>closed(N+1,oo);
37    vector<bool>used(N+1,false);
38    vector<node>minclosed;
39    int sz=dist[1].size();
40    
41    for(i=0;i<sz;i++){
42        closed[dist[1][i].end]=dist[1][i].len;
43        minclosed.push_back(dist[1][i]);
44    }

45    used[1]=true;
46    make_heap(minclosed.begin(),minclosed.end());
47
48    for(i=1;i<N;i++){
49        while(used[minclosed.front().end]){
50            pop_heap(minclosed.begin(),minclosed.end());
51            minclosed.pop_back();
52        }

53        pop_heap(minclosed.begin(),minclosed.end());
54        node ntemp=minclosed.back();
55        if(ntemp.end==N||ntemp.len==oo){closed[N]=ntemp.len;break;}
56        minclosed.pop_back();
57        used[ntemp.end]=true;
58
59        sz=dist[ntemp.end].size();
60
61        for(j=0;j<sz;j++){
62            int en=dist[ntemp.end][j].end;
63            int le=ntemp.len+dist[ntemp.end][j].len;
64            if(!used[en]&&le<closed[en]){
65                closed[en]=le;
66                minclosed.push_back(node(en,le));
67                push_heap(minclosed.begin(),minclosed.end());
68            }

69        }

70    }

71    printf("%d\n",closed[N]);
72    return 0;
73}

74
75
posted on 2008-09-02 19:05 Torres 閱讀(1193) 評論(0)  編輯 收藏 引用 所屬分類: Graph
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲欧洲精品一区二区三区| 亚洲欧美日韩另类精品一区二区三区 | 久久爱另类一区二区小说| 欧美成人综合一区| 免费人成网站在线观看欧美高清| 欧美呦呦网站| 亚洲黄色免费电影| 欧美va亚洲va香蕉在线| 日韩视频专区| 国产精品扒开腿爽爽爽视频 | 久久av在线| 激情偷拍久久| 亚洲高清视频在线观看| 久久久久青草大香线综合精品| 在线精品高清中文字幕| 亚洲经典在线| 国产精品亚洲综合天堂夜夜| 久久久久久久久综合| 久久一区视频| 亚洲亚洲精品在线观看| 欧美亚洲尤物久久| 91久久香蕉国产日韩欧美9色| 日韩网站在线看片你懂的| 国产私拍一区| 亚洲激情av| 国产日韩欧美精品一区| 欧美福利一区二区三区| 午夜精品国产| 日韩一级二级三级| 亚洲欧美日韩视频二区| 亚洲第一久久影院| 亚洲少妇自拍| 亚洲国产精品国自产拍av秋霞 | 久久国产精品第一页| 免费在线一区二区| 久久国产精品久久久久久| 男男成人高潮片免费网站| 香蕉久久夜色精品国产使用方法| 久久综合九色综合网站| 欧美一区2区三区4区公司二百| 免费久久久一本精品久久区| 亚洲一级网站| 一区二区日韩| 久久精品视频免费播放| 一本色道久久| 亚洲国产高清高潮精品美女| 这里只有视频精品| 亚洲裸体视频| 久久亚洲二区| 久久久蜜桃一区二区人| 国产精品一区二区视频| 99国产精品国产精品久久| 亚洲国产精品va在线看黑人| 欧美一区二区三区免费观看| 欧美一区三区三区高中清蜜桃| 欧美日韩国产欧美日美国产精品| 欧美成年人视频网站| 韩国免费一区| 香蕉国产精品偷在线观看不卡| 亚洲永久免费精品| 欧美少妇一区| 99国产精品99久久久久久| 久久精品国产免费观看| 亚洲天堂网站在线观看视频| 亚洲一区二区高清| 一区二区三区偷拍| 欧美黄网免费在线观看| 亚洲高清在线精品| 亚洲精品一二| 欧美人成在线视频| 日韩一级视频免费观看在线| 一区二区三区四区五区精品视频| 欧美日韩999| 宅男噜噜噜66一区二区66| 亚洲一区二区三区精品在线观看| 欧美日韩亚洲网| 一本色道久久综合亚洲精品小说| 一区二区三区国产精品| 国产精品久久久久久av福利软件| 中文日韩欧美| 久久精品导航| 亚洲黄色精品| 欧美三级电影大全| 亚洲欧美另类国产| 农村妇女精品| 乱人伦精品视频在线观看| 欧美日韩一区免费| 在线亚洲欧美视频| 久久国产精品99国产精| 黄色一区二区在线| 欧美日韩国产麻豆| 美女任你摸久久| 亚洲伦理自拍| 性欧美video另类hd性玩具| 国产欧美精品久久| 久久在线免费视频| 一本久道久久综合婷婷鲸鱼| 欧美一区日韩一区| 亚洲久久一区| 国产欧美欧美| 欧美激情精品久久久久久免费印度 | 国产精品久久久久久福利一牛影视| 亚洲欧美日韩区| 亚洲福利视频二区| 午夜亚洲伦理| 99热精品在线| 激情欧美亚洲| 国产精品久久久久久妇女6080| 久久国产手机看片| 亚洲婷婷在线| 亚洲高清免费| 久久综合久久综合九色| 中文在线不卡| 亚洲韩国青草视频| 国产一区二区三区在线观看免费 | 欧美激情视频一区二区三区免费| 亚洲一区二区欧美| 亚洲欧洲精品一区| 麻豆精品在线视频| 欧美一区二区三区免费大片| 亚洲乱码国产乱码精品精可以看 | 欧美 日韩 国产一区二区在线视频 | 99国产精品99久久久久久粉嫩| 国产日韩在线播放| 国产精品爱久久久久久久| 久热精品视频在线观看一区| 亚洲欧美国产一区二区三区| 亚洲三级影院| 亚洲欧洲精品天堂一级| 欧美jizz19hd性欧美| 久久久www免费人成黑人精品 | 欧美一区国产二区| 午夜久久资源| 亚洲深夜福利| 在线视频亚洲| 中文成人激情娱乐网| 亚洲美女黄色片| 亚洲三级色网| 亚洲精品色图| 亚洲精品一二三区| 亚洲日韩欧美视频一区| 亚洲精品少妇30p| 亚洲精品一区二区三区四区高清 | 国产伦精品一区二区三| 国产精品国产三级国产a| 欧美日韩视频在线第一区| 欧美精品激情| 欧美日韩视频专区在线播放| 欧美精品首页| 欧美天天在线| 国产精品久久久久aaaa九色| 国产精品麻豆欧美日韩ww| 国产精品久久毛片a| 国产精品日韩在线| 这里只有视频精品| 欧美亚洲自偷自偷| 久久激五月天综合精品| 欧美在线看片| 免费久久99精品国产自| 欧美大香线蕉线伊人久久国产精品| 欧美~级网站不卡| 亚洲国产免费看| 一区二区三区免费在线观看| 亚洲综合不卡| 久久久国产精品一区二区中文| 久久久久国产精品午夜一区| 美日韩在线观看| 欧美三级特黄| 国产亚洲午夜| 亚洲精品自在久久| 亚洲欧美韩国| 久久天天躁夜夜躁狠狠躁2022| 老司机免费视频一区二区三区 | 亚洲欧美另类中文字幕| 久久国产精品一区二区三区四区| 久久综合国产精品| 亚洲精品国产欧美| 午夜激情亚洲| 你懂的网址国产 欧美| 国产精品久久久久久久第一福利| 国产亚洲精品福利| 日韩小视频在线观看专区| 午夜一级在线看亚洲| 欧美成ee人免费视频| 亚洲小说欧美另类社区| 老司机午夜精品视频在线观看| 欧美日韩亚洲一区在线观看| 激情久久影院| 亚洲一区www| 亚洲第一色在线| 亚洲资源av| 欧美日韩美女在线观看| 国产一区视频在线观看免费| 99国产精品久久久久老师| 久久久久久午夜| 亚洲特黄一级片| 欧美久久久久久久久久| 怡红院精品视频| 欧美中文在线观看| 一区二区日韩欧美|