<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      uva 10917 - Walk Through the Forest

      刷刷水 牛人們說 可是我連水都覺得難 只得向牛人們學習 希望日積月累后 我的圖論水平也可以自豪地說“ 刷刷水”

      View Code
        1 /*
        2 題意:jimmy下班需要穿過一個森林。勞累一天后在森林中漫步是見非常愜意的事,
        3 所以他打算每天沿著不同的路徑回家,欣賞不同的風景。但他也不想太晚回家,
        4 因此他不打算走回頭路。換句話說,他只沿(A,B)走,
        5 存在一條從B出發回家的路徑比所有從A出發回家的路徑都短。
        6 你的任務是計算一共有多少條不同的回家路徑
        7 分析: 首先求每個點到家的最短路d[u];//dijkstra
        8        深搜 每個點出發有幾條可行路徑 進行累加 //if(d[u]<d[v[i]])ans+=dfs(v[i]);
        9        即可求出路徑總數
       10 *///AC
       11 #include <iostream>
       12 #include <cstring>
       13 #include <queue>
       14 #include <vector>
       15 #include <cstdio>
       16 #define maxn 1010
       17 using namespace std;
       18 typedef pair <int,int> pii;
       19 int d[maxn],Vis[maxn],vis[maxn];
       20   //d[]記錄從每個點u回家的最短路長度d[u]
       21 int first[maxn];
       22 vector<int>st,v,w,next;
       23 int m,n,e;
       24 void inist()
       25 {
       26     e=0;
       27     st.clear();
       28     w.clear();
       29     v.clear();
       30     next.clear();
       31     memset(first,-1,sizeof(first));
       32     memset(vis,0,sizeof(vis));
       33 }
       34 
       35 int add_edge(int a,int b,int d)
       36 {
       37     st.push_back(a);//push_back 向容器末尾添加一個元素
       38     v.push_back(b);
       39     w.push_back(d);
       40     next.push_back(first[a]);
       41     first[a]=e;
       42     e++;
       43 }
       44 void read()
       45 {
       46     int i=m;
       47     int a,b,d;
       48     e=0;
       49     while(i--)
       50     {
       51         scanf("%d%d%d",&a,&b,&d);
       52         add_edge(a,b,d);
       53         add_edge(b,a,d);
       54     }
       55 }
       56 void dijkstra()
       57 {
       58     int i;
       59      priority_queue < pii,vector<pii>,greater<pii> > q;
       60      //greater<pii>這是按值小的優先
       61      for(i=0;i<=n;i++)d[i]= 1 << 30;//初始化
       62      d[2]=0;////家的編號為2
       63      q.push(make_pair(0,2));
       64      while(!q.empty())
       65      {
       66          while(!q.empty()&&q.top().first>d[q.top().second])
       67          q.pop();//top()返回優先隊列對頂元素
       68          if(q.empty())break;
       69          int u=q.top().second;
       70          q.pop();
       71          for(i=first[u];i!=-1;i=next[i])
       72          {
       73              if(d[v[i]]>d[u]+w[i])
       74               {d[v[i]]=d[u]+w[i];
       75               q.push(make_pair(d[v[i]],v[i]));
       76               }
       77          }
       78      }
       79 }
       80 int dfs(int u)//dfs動態規劃求解 共有多少條路徑
       81 {
       82     int &ans=Vis[u];
       83     int i;
       84     if(vis[u]) return ans;
       85     vis[u]=1;
       86     for(i=first[u];i!=-1;i=next[i])
       87     {
       88         if(d[u]<d[v[i]])
       89         ans+=dfs(v[i]);
       90     }
       91     return ans;
       92 }
       93 void solve()
       94 {
       95     memset(Vis,0,sizeof(Vis));
       96     Vis[1]=1;
       97     printf("%d\n",dfs(2));//動態規劃求解
       98 }
       99 int main()
      100 {
      101     while(scanf("%d",&n)&&n)
      102     { scanf("%d",&m);
      103        // if(n==0)break;
      104         inist();
      105         read();
      106        // add_edge();
      107         dijkstra();
      108         solve();
      109     }
      110     return 0;
      111 }
      112 /*
      113 5 6
      114 1 3 2
      115 1 4 2
      116 3 4 3
      117 1 5 12
      118 4 2 34
      119 5 2 24
      120 7 8
      121 1 3 1
      122 1 4 1
      123 3 7 1
      124 7 4 1
      125 7 5 1
      126 6 7 1
      127 5 2 1
      128 6 2 1
      129 
      130 // 2  4
      131 */

      posted on 2013-04-17 19:15  ACM_Someone like you  閱讀(239)  評論(0)    收藏  舉報

      導航

      主站蜘蛛池模板: 国产91精选在线观看| 拍真实国产伦偷精品| 国产九九视频一区二区三区| 成年女人免费碰碰视频| 深夜免费av在线观看| 2019国产精品青青草原| 爱性久久久久久久久| 亚洲区日韩精品中文字幕| 偷拍精品一区二区三区| 亚洲永久一区二区三区在线| 亚洲欧美日韩一区在线观看| 亚洲一区二区三区水蜜桃| 福利一区二区视频在线| 亚洲日韩性欧美中文字幕| 国产乱久久亚洲国产精品| 视频二区国产精品职场同事| 日本a在线播放| 国产亚洲精品久久久久蜜臀| 色一伊人区二区亚洲最大| 日韩人妻精品中文字幕| 国产丝袜在线精品丝袜不卡| 亚洲中文字幕无码爆乳app| mm1313亚洲国产精品| 亚洲国产欧美在线看片一国产 | 国产男女猛烈无遮挡免费视频| 虎白女粉嫩尤物福利视频| 亚洲av无码精品色午夜| 日本久久香蕉一本一道| 国产原创自拍三级在线观看| 99精品全国免费观看视频 | 亚洲AV成人一区国产精品| 人妻系列无码专区69影院| 国产激情一区二区三区午夜| 亚洲av麻豆aⅴ无码电影| 国产免费一区二区三区在线观看| 国产精品一区在线蜜臀| 国产精品一区二区小视频| 国产高潮又爽又刺激的视频| 热久久美女精品天天吊色| 国产精品久久久久7777按摩| 国产精品午夜福利合集|