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

A Za, A Za, Fighting...

堅信:勤能補拙

PKU 1201 Intervals

問題:
http://acm.pku.edu.cn/JudgeOnline/problem?id=1201

思路:
第一次寫差分約束
設s[i]表示[0...i+1]中的整數在題意要求的集合中的個數,那么根據題意有(輸入a, b, c):
        s[b+1] - s[a] >= c
另外,還隱含約束條件:
        1 >= s[i] - s[i-1] >=0
然后就是用Bellman-ford算法求可行解

我不理解的地方在于:  Bellman-ford所求結果是可行解,如何保證是the minimal size of set Z 
或許可以參考:
http://hi.baidu.com/zf_hi/blog/item/529b830f27099aebaa645748.html

代碼(轉 http://blog.163.com/lu_jian_bin2006@126/blog/static/48789281200987398473/
 1 #include<iostream>
 2 #define INF 0x7fffffff
 3 using namespace std;
 4 
 5 struct {
 6  int fst,sed,adj;
 7  }edge[50001];
 8  
 9 int n,mx,mn,dist[50001];
10 
11 int Bellman()
12 {
13  int i,k;
14  for(i=mn;i<=mx;i++)dist[i]=0;
15  
16  for(k=mn;k<=mx;k++)
17  {
18    bool flag=true;
19    for(i=1;i<=n;i++)
20      if(dist[edge[i].sed]<dist[edge[i].fst]+edge[i].adj)
21          flag=false,dist[edge[i].sed]=dist[edge[i].fst]+edge[i].adj;
22     
23    for(i=mn;i<mx;i++)
24      if(dist[i]>dist[i+1])
25          dist[i+1]=dist[i],flag=false;
26 
27    for(i=mx;i>mn;i--)
28      if(dist[i]-1>dist[i-1])
29          dist[i-1]=dist[i]-1,flag=false;
30     
31    if(flag)break;
32  }
33  return dist[mx];
34 }
35 
36 int main()
37 {
38  while(cin>>n)
39  {
40    mx=0;
41    mn=INF;
42    for(int i=1;i<=n;i++)
43    {
44       cin>>edge[i].fst>>edge[i].sed>>edge[i].adj;
45       edge[i].sed++;
46       if(edge[i].fst<mn)mn=edge[i].fst;
47       if(edge[i].sed>mx)mx=edge[i].sed;
48    }
49    cout<<Bellman()<<endl;
50  }
51  return 0;
52 

代碼:
 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<string.h>
 4 #define MAX_E 50001
 5 #define MAX_V 50002
 6 #define INF 0x7FFFFFFF
 7 struct Edge {
 8     int from, to;
 9     int cost;
10 }edges[MAX_E];
11 int n, min, max;
12 int d[MAX_V];
13 
14 void
15 init()
16 {
17     int i;
18     min = INF;
19     max = 0;
20     for(i=1; i<=n; i++) {
21         scanf("%d %d %d"&edges[i].to, &edges[i].from, &edges[i].cost);
22         ++edges[i].from;
23         edges[i].cost *= (-1);
24         if(edges[i].to<min)
25             min = edges[i].to;
26         if(edges[i].from>max)
27             max = edges[i].from;
28     }
29 }
30 
31 void
32 bellman_ford()
33 {
34     int i, j, flag;
35     memset(d, 0sizeof(d)); /* the same effect to 'super souce' in CLRS */
36     for(i=min; i<=max; i++) { /* the number of verticles */
37         flag = 1;
38         /* RELAX each edge */
39         for(j=1; j<=n; j++)
40             if(d[edges[j].to] > d[edges[j].from]+edges[j].cost) {
41                 d[edges[j].to] = d[edges[j].from]+edges[j].cost;
42                 flag = 0;
43             }
44         for(j=min+1; j<=max; j++)
45             if(d[j] > d[j-1]+1) {
46                 d[j] = d[j-1]+1;
47                 flag = 0;
48             }
49         for(j=max; j>min; j--)
50             if(d[j-1> d[j]) {
51                 d[j-1= d[j];
52                 flag = 0;
53             }
54         if(flag)
55             break;
56     }
57 }
58 
59 int
60 main(int argc, char **argv)
61 {
62     while(scanf("%d"&n) != EOF) {
63         init();
64         bellman_ford();
65         printf("%d\n", d[max]-d[min]); /* d[max]=0 */
66     }
67 }

posted on 2010-09-13 20:32 simplyzhao 閱讀(265) 評論(0)  編輯 收藏 引用 所屬分類: F_圖算法

導航

<2011年5月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

統計

常用鏈接

留言簿(1)

隨筆分類

隨筆檔案

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产精品亚洲一区二区三区在线| 欧美成人网在线| 国产女优一区| 国产精品久久久久永久免费观看| 欧美日韩另类字幕中文| 欧美日韩免费在线| 国产精品成人一区| 国产精品综合| 黄色成人免费网站| 亚洲国产成人av| 99av国产精品欲麻豆| 亚洲巨乳在线| 亚洲一区三区视频在线观看 | 久久精品国产99国产精品| 午夜精品久久久久久久久久久久| 欧美一二三视频| 欧美sm重口味系列视频在线观看| 欧美精品aa| 国产欧美欧美| 亚洲精品日韩综合观看成人91| 正在播放欧美视频| 久久国产精品久久久| 欧美jizz19hd性欧美| 亚洲美女在线一区| 久久精品成人一区二区三区蜜臀 | 一区二区三区回区在观看免费视频| 一区二区三区欧美| 久久美女艺术照精彩视频福利播放| 欧美成人a视频| 一区二区三区精品| 久久久久久一区二区| 欧美涩涩网站| 亚洲福利在线看| 欧美在线视频一区二区| 亚洲国产精品一区二区尤物区| 亚洲精品少妇| 久久一二三四| 国产精品综合| 亚洲小说区图片区| 亚洲人被黑人高潮完整版| 久久成人免费| 国产欧美日韩亚洲精品| 欧美91大片| 亚洲网站视频| 欧美福利在线| 欧美亚洲一区二区在线| 欧美日本在线看| 亚洲第一精品夜夜躁人人爽| 亚洲欧美日本国产有色| 亚洲人成在线播放网站岛国| 欧美在线中文字幕| 国产伦精品一区二区三区高清版| 一本色道久久综合亚洲精品不卡| 欧美不卡三区| 久久不见久久见免费视频1| 国产精品久久久久77777| 99这里有精品| 亚洲免费观看视频| 欧美日韩亚洲不卡| 日韩一区二区精品| 亚洲国产精品尤物yw在线观看| 久久久91精品国产一区二区三区| 国产精品99一区二区| 亚洲欧美国产视频| 中文国产成人精品| 国产噜噜噜噜噜久久久久久久久| 午夜亚洲性色福利视频| 亚洲一区二区在线视频| 国产精品美女久久久久久免费| 亚洲在线不卡| 亚洲欧美日韩综合| 国产一区二区观看| 久久综合亚州| 欧美成人首页| 99国产精品国产精品毛片| 亚洲国内精品| 欧美日韩另类综合| 欧美在线播放视频| 久久阴道视频| 一区二区三区av| 亚洲欧美中日韩| 影音先锋久久精品| 亚洲国产高清自拍| 欧美视频在线一区| 久久久久99| 欧美va亚洲va国产综合| 中国女人久久久| 亚洲免费在线| 亚洲电影欧美电影有声小说| 亚洲高清不卡| 亚洲一区二区三区免费观看| 国产精品久久久久久久久久免费 | 欧美精品久久久久久久久老牛影院| 亚洲激情第一页| 中文欧美日韩| 欧美国产亚洲视频| 欧美久久九九| 亚洲一区二区三区精品视频 | 欧美在线free| 亚洲人成网站色ww在线| 在线一区二区视频| 亚洲成人直播| 亚洲午夜在线观看| 在线免费高清一区二区三区| 亚洲美女中文字幕| 黄色精品一区二区| 亚洲少妇一区| 亚洲免费观看高清完整版在线观看| 亚洲视频在线观看一区| 亚洲电影免费观看高清完整版在线观看 | 国产精品色午夜在线观看| 美女脱光内衣内裤视频久久网站| 欧美日韩精品免费观看| 噜噜噜躁狠狠躁狠狠精品视频 | 欧美日韩久久| 女同性一区二区三区人了人一| 国产精品成人在线观看| 亚洲国产成人av在线| 国产原创一区二区| 亚洲一区二三| 亚洲午夜伦理| 欧美日韩www| 亚洲第一中文字幕| 国产香蕉97碰碰久久人人| 99综合视频| 国产精品v欧美精品v日韩精品| 欧美激情精品久久久久久变态| 国产亚洲一区二区三区在线观看| 日韩视频不卡| 日韩一二三在线视频播| 欧美承认网站| 亚洲成色777777在线观看影院| 好看不卡的中文字幕| 欧美一区二区视频观看视频| 欧美一区二区视频97| 国产精品久久久久国产a级| 亚洲理论在线观看| 一区二区三区国产| 欧美香蕉大胸在线视频观看| 日韩视频在线观看一区二区| av成人毛片| 欧美视频精品在线观看| 夜夜夜精品看看| 亚洲一区免费看| 国产麻豆精品视频| 欧美在线播放一区二区| 久久久91精品国产| 伊人婷婷欧美激情| 欧美freesex8一10精品| 亚洲精品中文字幕有码专区| 亚洲素人在线| 国产日韩欧美夫妻视频在线观看| 香蕉视频成人在线观看 | 久久精品国产亚洲一区二区| 欧美高清在线一区| 国产精品久久久一区二区三区 | 亚洲国产精品黑人久久久| 亚洲精品久久久久久久久久久久久| 久久综合伊人77777麻豆| 欧美福利在线观看| 一区二区三区欧美| 国产日韩欧美一区二区三区四区| 久久疯狂做爰流白浆xx| 欧美激情国产日韩| 亚洲一区二区三区四区五区午夜| 国产精品欧美风情| 久久gogo国模裸体人体| 免费亚洲婷婷| 亚洲调教视频在线观看| 国产情侣久久| 免费在线看成人av| 亚洲婷婷国产精品电影人久久| 久久久久国产精品麻豆ai换脸| 在线观看精品一区| 欧美体内she精视频| 久久精品九九| 一区二区三区精品视频在线观看| 久久久欧美一区二区| 亚洲精品色婷婷福利天堂| 国产精品视频免费观看www| 噜噜噜91成人网| 亚洲午夜一二三区视频| 亚洲国产va精品久久久不卡综合| 亚洲欧美日本精品| 亚洲精品视频在线看| 国产精品一区久久| 欧美剧在线观看| 久久一区视频| 亚洲欧美国产精品专区久久| 亚洲国产精品久久人人爱蜜臀| 欧美在线视频一区二区三区| 9l国产精品久久久久麻豆| 激情婷婷亚洲| 国产日韩欧美三区| 国产精品高精视频免费| 欧美激情成人在线| 久色成人在线| 久久久久九九视频| 欧美在线精品免播放器视频| 一本色道综合亚洲|