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

O(1) 的小樂

Job Hunting

公告

記錄我的生活和工作。。。
<2012年6月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

統計

  • 隨筆 - 182
  • 文章 - 1
  • 評論 - 41
  • 引用 - 0

留言簿(10)

隨筆分類(70)

隨筆檔案(182)

文章檔案(1)

如影隨形

搜索

  •  

最新隨筆

最新評論

閱讀排行榜

評論排行榜

Timus 1078 SPFA

之前做這個題使用的方法是Floyd其所有點的最長路,但是這個還可以使用SPFA來做,因為這個圖是肯定沒有正環的圖,然后把所有入讀為0的點,都一次性的加入到SPFA的隊列或者棧中,則可以求解出一個全局最大值。然后用SPFA可以加一個父親域,來回復我們獲得的路徑。

 

   1:   
   2:  #include <queue>
   3:  #include <iostream>
   4:  #include <string.h>
   5:  #include <stdio.h>
   6:  #include <algorithm>
   7:  #include <vector>
   8:  using namespace std;
   9:  #define V 30010      // vertex
  10:  #define E 150010      // edge
  11:  #define INF 0x3F3F3F3F
  12:   
  13:  struct node
  14:  {
  15:      int v, w, next;
  16:  }pnt[E];
  17:   
  18:  int head[V];
  19:  int  dis[V];
  20:  bool vis[V];
  21:  int  cnt[V];          // the num of the operation of push to Quque. negatvie cycle.
  22:  int e = 0;            // the index of the edge
  23:  int N ;               // the num of the vertex.
  24:  int M ;               // the num of edges
  25:  int src, sink;
  26:  int father[V];
  27:  int ru[V];
  28:  void addedge(int  u, int v, int w)
  29:  {
  30:      pnt[e].v = v; pnt[e].w= w;
  31:      pnt[e].next = head[u]; head[u] = e++;
  32:  }
  33:  void SPFA_init()
  34:  {
  35:      e=0;
  36:      memset(head, -1,sizeof(head));
  37:      memset(vis, 0 ,sizeof(vis));
  38:      memset(cnt, 0 ,sizeof(cnt));
  39:      for(int i=0; i<=N; i++) dis[i] = -1;          // MODIFIED
  40:      memset(father, -1, sizeof(father));
  41:  }
  42:  int SPFA()
  43:  {
  44:      queue<int> Q;
  45:      for(int i=1; i<=N; i++) 
  46:      {
  47:          src = i;
  48:          if(ru[i] == 0)
  49:          {
  50:              Q.push(src); vis[src] = 1; dis[src] = 0; ++cnt[src];
  51:          }
  52:      }
  53:      while(!Q.empty()) 
  54:      {
  55:          int u = Q.front(); Q.pop();  vis[u] = 0;
  56:          for(int i=head[u]; i!=-1; i=pnt[i].next)
  57:          {
  58:              int v = pnt[i].v;
  59:              if( dis[v] < dis[u] + pnt[i].w  )          // MODIFIED
  60:              {
  61:                  dis[v] = dis[u] + pnt[i].w;
  62:                  father[v] = u;
  63:                  if(!vis[v]) { Q.push(v); vis[v] = 1;}
  64:                  if( ++cnt[v] > N) return -1;   // positive  cycle.
  65:              }
  66:          }
  67:      }
  68:      if(dis[sink] == -1 ) return -2;            // can't from src to sink. 
  69:      return dis[sink];
  70:  }
  71:   
  72:  int main()
  73:  {
  74:      //freopen("1078.txt","r",stdin);
  75:      scanf("%d", &N);
  76:      int a, b;
  77:      vector<pair<int, int> > C;
  78:      memset(ru, 0 ,sizeof(ru));
  79:      SPFA_init();
  80:      for(int i=0; i<N; i++)
  81:      {
  82:          int a, b;
  83:          scanf("%d%d", &a, &b);
  84:          C.push_back(make_pair(a,b));
  85:          for(int i=0; i<C.size(); i++)
  86:          {
  87:              if(a<C[i].first && b> C[i].second)
  88:              {
  89:                  ru[C.size()]++;
  90:                  addedge(i+1,C.size() , 1);
  91:              }
  92:              else if(a> C[i].first && b< C[i].second)
  93:              {
  94:                  ru[i+1]++;
  95:                  addedge(C.size(), i+1,1);
  96:              }
  97:          }
  98:      }
  99:      SPFA();
 100:      //for(int i=1; i<=N; i++) cout<<father[i]<<" "; cout<<endl;
 101:      int ret  =0; int idx = -1;
 102:      for(int i=1; i<=N; i++)
 103:      {
 104:          if(dis[i]>ret)
 105:          {
 106:              ret = dis[i];
 107:              idx = i;
 108:          }
 109:      }
 110:      if(ret == 0)
 111:      {
 112:          cout<<1<<endl;
 113:          cout<<1<<endl;
 114:      }
 115:      else
 116:      {
 117:          cout<<ret+1<<endl;
 118:          vector<int> D;
 119:          D.push_back(idx);
 120:          while(father[idx] != -1)
 121:          {
 122:              D.push_back(father[idx]);
 123:              idx = father[idx];
 124:          }
 125:          reverse(D.begin(), D.end());
 126:          for(int i=0; i<D.size(); i++) cout<<D[i]<<" ";
 127:          cout<<endl;
 128:      }
 129:      return 0;
 130:  }

posted on 2012-11-10 14:39 Sosi 閱讀(411) 評論(0)  編輯 收藏 引用

統計系統
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久国产欧美日韩精品| 欧美少妇一区| 国一区二区在线观看| 亚洲啪啪91| 欧美日韩大片| 欧美在线免费看| 亚洲成色精品| 卡通动漫国产精品| 欧美18av| 免费日本视频一区| 欧美1级日本1级| 亚洲高清123| 欧美黄色一区二区| 欧美国产1区2区| 午夜日本精品| 亚洲免费观看在线观看| 国产亚洲综合性久久久影院| 亚洲午夜激情| 午夜精品美女自拍福到在线 | 国产亚洲一级高清| 久久嫩草精品久久久久| 男女激情久久| 亚洲欧美中文另类| 久久精品一本久久99精品| 亚洲国产一区视频| 亚洲一级高清| 亚洲国产精品ⅴa在线观看 | 欧美好吊妞视频| 欧美四级在线| 欧美黄色日本| 国产欧美日韩另类视频免费观看| 欧美r片在线| 国产精品婷婷| 亚洲黄色成人| 黑人一区二区三区四区五区| 亚洲免费观看高清在线观看| 国产一区二区欧美日韩| 亚洲乱码国产乱码精品精可以看| 国产午夜精品全部视频播放| 亚洲国产日韩一区二区| 国产在线成人| 在线一区二区三区四区| 亚洲欧洲一区二区三区在线观看| 亚洲视频在线播放| 日韩一级片网址| 久久理论片午夜琪琪电影网| 篠田优中文在线播放第一区| 欧美日韩另类一区| 亚洲成在线观看| 国产真实精品久久二三区| 亚洲视频免费观看| 一区二区欧美在线| 欧美激情第4页| 男女精品视频| 国产一区二区三区黄| 亚洲欧美日韩一区在线观看| 中国成人在线视频| 国产精品一区二区在线观看不卡| 亚洲国产高清在线观看视频| 亚洲大胆av| 久久久一区二区三区| 久久欧美肥婆一二区| 国产精品白丝黑袜喷水久久久| 亚洲第一福利社区| 最新日韩欧美| 欧美va天堂在线| 欧美激情一区二区三区在线视频 | 亚洲欧美日韩国产中文| 亚洲一级在线观看| 欧美视频在线观看视频极品| 99爱精品视频| 亚洲欧美精品在线| 国产精品久久99| 亚洲午夜精品一区二区| 午夜久久影院| 国产手机视频一区二区| 欧美在线首页| 欧美大学生性色视频| 91久久久久| 欧美日韩中文字幕在线| 国产精品99久久久久久久久| 性做久久久久久免费观看欧美| 国产精品视频久久一区| 久久国产精品高清| 免费日韩av| 亚洲午夜av在线| 国产精品综合久久久| 久久久久国产一区二区三区四区 | 亚洲欧美激情在线视频| 国产一区二区黄| 久久资源av| 日韩小视频在线观看专区| 亚洲欧美日韩中文在线制服| 国内精品久久久久久久影视麻豆| 老司机一区二区| 亚洲毛片在线观看| 久久久国产午夜精品| 亚洲黄色性网站| 欧美视频在线免费看| 欧美一级淫片播放口| 欧美激情一区二区三区在线| 亚洲在线视频观看| 红桃视频一区| 欧美日韩另类视频| 久久久久久久97| 99精品久久久| 免费在线看一区| 亚洲一区二区动漫| 亚洲国产精品视频| 国产精品日韩在线一区| 麻豆久久婷婷| 亚洲一区观看| 亚洲国产视频一区| 久久精品国产在热久久| 一区二区三区四区五区在线| 一区国产精品| 国产精品永久| 欧美人与性禽动交情品| 久久亚洲综合色| 亚洲午夜精品久久久久久app| 亚洲国产精品欧美一二99| 久久国产精彩视频| 亚洲一区二区三区在线观看视频 | 国产精品日日摸夜夜摸av| 亚洲第一精品福利| 亚洲男人第一网站| 亚洲国产视频a| 久久一区欧美| 亚洲欧美日韩在线综合| 一区二区精品| 日韩视频在线播放| 亚洲成人在线观看视频| 黑人操亚洲美女惩罚| 国产精品久久综合| 欧美视频成人| 欧美四级在线| 欧美午夜国产| 欧美日韩国产成人精品| 欧美成人免费一级人片100| 久久久久国产精品一区| 欧美在线观看一二区| 欧美一区二区在线观看| 午夜在线视频一区二区区别| 午夜精品剧场| 欧美一区二区成人6969| 欧美在线免费观看| 久久成人免费网| 久久久国产精彩视频美女艺术照福利 | 国产精品一区二区三区观看| 国产精品成人观看视频免费| 国产精品成人va在线观看| 国产精品va在线播放| 国产精品久久久久久久久免费樱桃| 欧美三级电影一区| 国产精品欧美一区二区三区奶水| 国产精品久久久久久影视 | 欧美夫妇交换俱乐部在线观看| 久久久一区二区| 欧美成人首页| 欧美午夜宅男影院在线观看| 国产精品欧美经典| 国产亚洲视频在线观看| 有坂深雪在线一区| 亚洲美女在线视频| 亚洲综合视频在线| 久久久久国产精品一区三寸| 久久在线免费视频| 亚洲国产老妈| 亚洲一区二区三区精品视频| 欧美在线3区| 你懂的成人av| 国产精品久久久久久久7电影 | 欧美日韩美女| 国产日产精品一区二区三区四区的观看方式 | 亚洲女爱视频在线| 久久婷婷av| 欧美日韩一区三区| 极品尤物久久久av免费看| 99国产精品视频免费观看一公开| 亚洲欧美日本伦理| 免费视频一区| 亚洲视频在线观看网站| 久久久天天操| 国产精品大片wwwwww| 亚洲国产精品久久久久婷婷老年| 亚洲一区二区av电影| 欧美承认网站| 亚洲欧美日韩在线高清直播| 免费亚洲一区二区| 国产欧美日本一区二区三区| 亚洲激情视频在线观看| 欧美尤物一区| 日韩一级大片在线| 久久午夜视频| 国产精品视频一区二区三区| 亚洲国产合集| 午夜在线一区| 中国亚洲黄色| 久久手机免费观看| 亚洲淫性视频|