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

The Fourth Dimension Space

枯葉北風寒,忽然年以殘,念往昔,語默心酸。二十光陰無一物,韶光賤,寐難安; 不畏形影單,道途阻且慢,哪曲折,如渡飛湍。斬浪劈波酬壯志,同把酒,共言歡! -如夢令

POJ 1511-Invitation Cards(SPFA算法)

今天終于用SPFA寫出了第一個程序,感覺收獲很大,從Dij到Floyed再到Bellmen,以及今天的SPFA,每一種算法背后都蘊藏著許多值得思考的地方。正因為研究了它們,才使得我的能力不斷地獲得了提高。
之前以為SPFA做為最短路問題最快的算法,想必代碼定不好寫,不過今天研究過才知道,SPFA的代碼量遠遠不及Dij,這著實令人驚嘆,原來最好的算法SPFA是如此的好寫,呵呵 我想此算法在很大程度上可以完全代替之前的算法,以后再碰到最短路問題時,SPFA一定能成為首要的選擇!
PS:由于是用鄰接表來存儲的,所以每次操作前要收回以前分配的內存,我嘗試了收回和不收回兩種方法,發現其實差別不大,如果純粹是比賽的話,可能不收回反而會更好些(避免超時)。當然如果在實際應用中,應該切記內存的分配,否則軟件可能會發生異常。

//Coded by abilitytao 
//Time:2009-04-10 22:49:58
#include<iostream>
#include
<cmath>
#include
<queue>
using namespace std;
#define MAX_NUM 1000000001
#define MAX_DOTNUM 1000001

int n,m;
queue
<int>myqueue;
bool mark[MAX_DOTNUM];
__int64 dis[MAX_DOTNUM];


struct node
{

    
int v;
    
int w;
    node 
*next;
}
edge[MAX_DOTNUM];//此鄰接表用于存儲正向圖

node reversed_edge[MAX_DOTNUM];
//此逆鄰接表用于存儲逆向圖

void initial(node edge[])//鄰接表的初始化,里面封裝了回收上一次操作所分配之內存的操作
{
    
int i;
    node 
*p;
    node 
*q;
    
for(i=1;i<=n;i++)
    
{
        p
=&edge[i];
        q
=p->next;
        
while(q!=NULL)
        
{
            p
->next=q->next;
            delete q;
            q
=p->next;
        }

    }

}



void input_case()//每一個case的輸入函數
{

    
int i;
    
for(i=1;i<=m;i++)
    
{
        node 
*p;
        node 
*q;
        
int a,b,c;
        scanf(
"%d%d%d",&a,&b,&c);
        
////////////////////////
        p=&edge[a];
        q
=new node;
        q
->v=b;
        q
->w=c;
        q
->next=p->next;
        p
->next=q;
        
////////////////////////
        p=&reversed_edge[b];
        q
=new node;
        q
->v=a;
        q
->w=c;
        q
->next=p->next;
        p
->next=q;
    }

}



void spfa(node edge[])//SPFA部分
{

    
int i;
    
///////////////////////////////////////////////////////////////
    memset(mark,false,sizeof(mark));
    
for(i=1;i<=n;i++)
        dis[i]
=MAX_NUM;
    
while(myqueue.size()!=0)
        myqueue.pop();
    
///////////////////////////////////////////////////////////
    dis[1]=0;
    mark[
1]=true;
    myqueue.push(
1);
    
while(myqueue.size()!=0)//如果隊列不空,則進行松弛操作,直到隊列空為止
    {
        
int temp=myqueue.front();
        myqueue.pop();
        mark[temp]
=false;
        node 
*p;
        
for(p=edge[temp].next;p!=NULL;p=p->next)
        
{
            
if(dis[p->v]>dis[temp]+p->w)
            
{
                dis[p
->v]=dis[temp]+p->w;
                
if(mark[p->v]!=true)
                
{
                    myqueue.push(p
->v);
                    mark[p
->v]=true;
                }

            }

        }

    }

}



int main()
{

    
int testcase;
    
int i,j;
    __int64 sum;
    scanf(
"%d",&testcase);
    
for(i=1;i<=MAX_DOTNUM-1;i++)
    
{
        edge[i].v
=i;
        edge[i].w
=0;
        edge[i].next
=NULL;
    }

    
for(i=1;i<=MAX_DOTNUM-1;i++)
    
{
        reversed_edge[i].v
=i;
        reversed_edge[i].w
=0;
        reversed_edge[i].next
=NULL;
    }

    
for(i=1;i<=testcase;i++)
    
{
        sum
=0;
        scanf(
"%d%d",&n,&m);
        initial(edge);
        initial(reversed_edge);
        input_case();
        spfa(edge);
        
for(j=1;j<=n;j++)
            sum
+=dis[j];
        spfa(reversed_edge);
        
for(j=1;j<=n;j++)
            sum
+=dis[j];
        printf(
"%I64d\n",sum);
    }

    system(
"pause");
    
return 0;

}


posted on 2009-04-11 00:51 abilitytao 閱讀(2814) 評論(2)  編輯 收藏 引用

評論

# re: POJ 1511-Invitation Cards(SPFA算法) 2009-04-12 12:25 lzmagic

嘿嘿,寫得真不錯,我的用STL超時了~
貌似把
initial(edge);
initial(reversed_edge);
這兩句放到
printf("%I64d\n",sum);
后面去會超時,也許是最后一句數據釋放要很久……  回復  更多評論   

# re: POJ 1511-Invitation Cards(SPFA算法) 2009-04-14 16:09 abilitytao

really?我試試看 我開始還以為是回收的效率很高呢...  回復  更多評論   

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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国产精品| 欧美亚洲在线观看| 伊人精品视频| 亚洲精品欧洲精品| 国产欧美日韩在线| 免费观看不卡av| 欧美激情一区二区三区全黄| 香蕉免费一区二区三区在线观看| 亚洲欧美成人一区二区三区| 在线看日韩av| 一区二区三区日韩| 在线观看视频一区二区| 亚洲欧洲日韩在线| 国产欧美日韩视频在线观看| 欧美韩日一区二区| 国产精品乱码一区二区三区| 蜜桃久久av| 国产精品精品视频| 欧美国产日韩二区| 国产精品久久久久久模特| 欧美.com| 国产欧美午夜| 亚洲日本欧美| 樱桃视频在线观看一区| 一区二区日韩精品| 亚洲国产日韩欧美| 香蕉免费一区二区三区在线观看| 亚洲人线精品午夜| 欧美在线一二三| 中文在线不卡视频| 欧美不卡在线| 久久精品30| 国产精品久久77777| 亚洲国产精品欧美一二99| 国产亚洲精品aa午夜观看| 亚洲美女少妇无套啪啪呻吟| 亚洲福利视频网| 性色一区二区三区| 午夜影视日本亚洲欧洲精品| 欧美激情无毛| 欧美激情久久久久久| 国产一区二区三区自拍| 亚洲欧美国产精品va在线观看| 日韩视频在线你懂得| 免费高清在线一区| 久久综合九色综合欧美狠狠| 国产美女搞久久| 99精品国产在热久久婷婷| 亚洲欧洲一区二区三区在线观看| 久久精品国产免费观看| 午夜综合激情| 国产精品视频大全| 亚洲在线播放| 欧美一区二区性| 国产日韩一区二区三区| 国产精品美女久久久久久免费| 亚洲欧洲一区| 一区二区三区精品在线| 欧美国产综合视频| 亚洲国产老妈| 一区二区三区四区五区精品| 欧美精品成人一区二区在线观看| 亚洲国产精品久久久久婷婷老年 | 亚洲一区二区三区在线观看视频| 亚洲午夜影视影院在线观看| 欧美日韩亚洲一区二| 在线视频欧美一区| 亚洲欧美日韩国产一区二区三区 | 久久精品一区二区三区四区| 久久中文欧美| 亚洲激情自拍| 欧美揉bbbbb揉bbbbb| 亚洲一区二区精品在线观看| 欧美一区二区三区免费大片| 韩国久久久久| 蜜桃av一区二区在线观看| 最近中文字幕日韩精品| 亚洲影音一区| 国产三级精品三级| 蜜臀久久99精品久久久久久9| 亚洲国产精品毛片| 亚洲欧美日韩精品在线| 激情成人中文字幕| 欧美日韩ab片| 亚洲免费网址| 欧美高清免费| 亚洲欧美中文日韩在线| 精品成人国产| 欧美喷水视频| 欧美在线视频在线播放完整版免费观看 | 亚洲最新在线| 国产精品进线69影院| 久久精品国产99国产精品| 欧美国产高清| 欧美一区二区三区视频免费播放| 国产精一区二区三区| 免费一级欧美在线大片| 亚洲综合首页| 亚洲精品综合在线| 久久综合九色欧美综合狠狠| 亚洲图片自拍偷拍| 亚洲第一在线综合在线| 国产精品蜜臀在线观看| 欧美成人dvd在线视频| 亚洲欧美日韩国产一区| 亚洲激情在线播放| 欧美自拍偷拍| 亚洲一区在线看| 亚洲三级电影全部在线观看高清| 国产麻豆午夜三级精品| 欧美日韩一区成人| 欧美成人午夜激情视频| 久久精品2019中文字幕| 亚洲图片欧美午夜| 日韩视频精品| 91久久久在线| 亚洲国产成人午夜在线一区| 久久精品久久综合| 午夜亚洲激情| 亚洲午夜日本在线观看| 亚洲精品字幕| 亚洲国产精品va在线看黑人动漫| 国产一区二区三区日韩欧美| 一本久久综合亚洲鲁鲁| 欧美电影免费观看高清| 久久久久久9| 性欧美xxxx大乳国产app| 亚洲视频在线观看视频| 亚洲国产精品黑人久久久| 狠狠v欧美v日韩v亚洲ⅴ| 国产日韩1区| 国产欧美一区二区精品性色| 国产精品家庭影院| 国产精品资源| 国产精品一区久久久| 国产精品乱看| 国产女主播一区二区三区| 欧美性做爰毛片| 国产精品海角社区在线观看| 国产精品日产欧美久久久久| 国产精品视频1区| 国产精品网红福利| 国产亚洲精品福利| 红桃视频国产精品| 亚洲激情在线播放| 亚洲美女在线一区| 一区二区三区高清在线观看| 一区二区成人精品| 亚洲综合激情| 欧美在线电影| 久久综合久久综合久久| 亚洲大片精品永久免费| 亚洲精品国产品国语在线app | 欧美在线视频日韩| 久久久久**毛片大全| 美女诱惑黄网站一区| 亚洲国产精品一区二区第四页av| 亚洲欧洲综合另类| 亚洲新中文字幕| 欧美在线啊v一区| 免费在线亚洲欧美| 国产精品区一区二区三区| 国产一区av在线| 亚洲精品影院| 翔田千里一区二区| 欧美激情免费在线| 亚洲特色特黄| 麻豆成人小视频| 欧美视频一区二区三区四区| 国内精品久久久| 一区二区免费看| 久久性天堂网| 日韩一级黄色大片| 久久久久久久久综合| 欧美日韩精品国产| 国内自拍视频一区二区三区| 夜夜嗨一区二区三区| 久久精品一区蜜桃臀影院 | 欧美亚洲三区| 91久久亚洲| 久久天堂精品| 国产精品麻豆成人av电影艾秋| 亚洲国产乱码最新视频| 欧美一区二区三区在线视频| 欧美成人精品在线视频| 亚洲欧美电影院| 欧美精品一区视频| 亚洲福利国产| 久久精品麻豆| 亚洲一区二区三区免费观看| 欧美激情精品久久久久久大尺度| 国产偷国产偷精品高清尤物| 亚洲一区二区三区在线播放| 亚洲国产成人在线播放| 久久精品人人做人人爽| 国产精品麻豆欧美日韩ww| 一区二区三区精品久久久|