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

隨筆 - 97, 文章 - 22, 評論 - 81, 引用 - 0
數(shù)據(jù)加載中……

Hdu 2363 Cycling(最短路)

每個點有一個高度,從1到n使得最大高度和最小高度的差值最小,如果有相同高度,取路徑最短的。以前比賽的時候沒有去看,以為是很難的題,后來聽說要用二分,一直拖著,今天早上起來,讀了一下題目發(fā)現(xiàn)根本不用二分,點只有100個,可以對每個點的高度進行上下界枚舉求最短路保存最優(yōu)值。這樣的話最壞復雜度是O(n^4),這里n == 100,而且測試樣例有100組,但是這個題目的限制條件決定了有很多地方可以剪枝。首先,可以先將每個點的高度進行升序排列,如果1或n不在所枚舉的高度上下界中,直接跳過。再者,如果當前枚舉的高度差大于先前算出來的最優(yōu)值,直接跳過不算,最強的是:如果當前能夠算出解,那么上界再大亦可算出,直接break;

代碼如下:
#include <iostream>
#include 
<algorithm>
using namespace std;

int t;
int alti[101];
int n, m;
int d[101], s[101];
int map[101][101];
int sor[101];

int Dijkstra(int Min, int Max) {

    
int i;

    
for(i = 1; i <= n; i++{
        
if(alti[i] > Max || alti[i] < Min) {
            d[i] 
= 100000000;
            s[i] 
= 0;
        }
else {
            d[i] 
= map[1][i];
            s[i] 
= 0;
        }

    }

    d[
1= 0;
    s[
1= 1;
    
    
while(1{
        
int Mina = 100000000, u = -1;
        
for(i = 1; i <= n; i++{
            
if(alti[i] > Max || alti[i] < Min) 
                
continue;
            
if(!s[i] && d[i] < Mina) {
                Mina 
= d[i];
                u 
= i;
            }

        }

        
if(u == n)
            
return d[u];
        
if(u == -1)
            
return -1;
        s[u] 
= 1;
        
for(i = 1; i <= n; i++{
            
if(alti[i] > Max || alti[i] < Min) 
                
continue;
            
if(!s[i] && d[u] + map[u][i] < d[i]) {
                d[i] 
= d[u] + map[u][i];
            }

        }

    }

}


int main() {

    
int i, j;
    scanf(
"%d"&t);
    
int a, b, c;
    
while(t--{
        scanf(
"%d %d"&n, &m);

        
for(i = 1; i <= n; i++{
            
for(j = 1; j <= n; j++{
                map[i][j] 
= 100000000;
            }

        }

        
for(i = 1; i <= n; i++{
            scanf(
"%d"&alti[i]);
            sor[i
-1= alti[i];
        }

        sort(sor, sor 
+ n);

        
while(m--){
            scanf(
"%d %d %d"&a, &b, &c);
            
if(c < map[a][b]) {
                map[a][b] 
= map[b][a] = c;
            }

        }


        
int Min = 2000000000, path;

        
for(i = 0; i < n; i++{
            
for(j = i+1; j < n; j++{

                
if(alti[n] > sor[j] || alti[n] < sor[i])
                    
continue;
                
if(alti[1> sor[j] || alti[1< sor[i])
                    
continue;

                
if(sor[j] - sor[i] > Min)
                    
break;

                
int yu;
                yu 
= Dijkstra(sor[i], sor[j]);
                
//printf("%d %d %d\n", sor[i], sor[j], yu);

                
if(yu + 1 && sor[j] - sor[i] == Min) {
                    
if(yu < path)
                        path 
= yu;
                }


                
if(yu + 1 && sor[j] - sor[i] < Min) {
                    Min 
= sor[j] - sor[i];
                    path 
= yu;
                }


                
if(yu != -1)
                    
break;
            }

        }

        
if(n == 1)
            printf(
"0 0\n");
        
else
            printf(
"%d %d\n",  Min, path);
    }

}

posted on 2009-03-10 09:14 英雄哪里出來 閱讀(544) 評論(1)  編輯 收藏 引用 所屬分類: ACM

評論

# re: Hdu 2363 Cycling(最短路)  回復  更多評論   

你好我做這題的時候是二分高度差的,然后根據(jù)這個高度差做一遍dijkstra的,但是一直wa。這種寫法有什么問題么?
2009-10-04 14:20 | rotten
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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热免费精品| 亚洲桃花岛网站| 午夜亚洲性色视频| 久久精品女人| 欧美激情一区| 99国产精品久久久久久久| 一区二区av在线| 久久精品天堂| 欧美日韩国产在线看| 国产精品高潮在线| 狠狠色伊人亚洲综合网站色| 亚洲经典在线看| 亚洲欧美999| 裸体女人亚洲精品一区| 亚洲高清久久久| 日韩一区二区精品葵司在线| 亚洲无线观看| 免费人成网站在线观看欧美高清| 欧美金8天国| 狠狠色丁香久久婷婷综合_中| 日韩视频在线播放| 久久精品国产91精品亚洲| 亚洲国产高潮在线观看| 亚洲自拍三区| 欧美精品xxxxbbbb| 精品动漫3d一区二区三区免费版| 一区二区三区免费观看| 欧美一区二区三区男人的天堂| 欧美韩日视频| 欧美一区二区三区在线看| 欧美激情一区二区三区在线视频观看| 国产精品免费一区二区三区在线观看| 亚洲国产精品小视频| 久久av在线| 国产精品99久久99久久久二8| 久久综合图片| 国产一区二区三区高清 | 欧美三级日本三级少妇99| 国产一区在线免费观看| 亚洲免费伊人电影在线观看av| 国产日韩欧美不卡| 日韩午夜激情av| 蜜桃久久av一区| 久久国产婷婷国产香蕉| 国产精品三级久久久久久电影| 99视频精品在线| 亚洲成人在线网站| 久久天堂av综合合色| 国产一区二区三区av电影| 香蕉亚洲视频| 在线一区日本视频| 免费不卡中文字幕视频| 久久久久久9999| 国产有码在线一区二区视频| 欧美在线电影| 欧美中文字幕| 在线成人激情| 欧美激情久久久久久| 裸体女人亚洲精品一区| 亚洲电影免费在线观看| 欧美福利一区二区| 老司机成人在线视频| 亚洲激情电影在线| 亚洲欧洲综合另类| 欧美三级午夜理伦三级中视频| 中文久久精品| 在线亚洲精品福利网址导航| 国产精品丝袜91| 久久久久久久久久看片| 久久久久五月天| 亚洲精品一区二区三区99| 亚洲精品影院| 国产精品外国| 免费av成人在线| 欧美激情麻豆| 亚洲欧美视频在线观看| 欧美在线视频一区二区三区| 亚洲电影天堂av| 日韩亚洲欧美一区二区三区| 国产精品无人区| 欧美成人精品| 国产精品二区在线观看| 久久永久免费| 欧美日韩三级| 久久手机精品视频| 欧美精品在线免费播放| 欧美中文在线观看国产| 免费成人在线观看视频| 午夜视频在线观看一区二区| 麻豆久久婷婷| 欧美在线观看一二区| 欧美大香线蕉线伊人久久国产精品| 亚洲一区自拍| 久久亚洲综合色| 亚洲欧美日韩国产一区二区三区| 久久久精品国产99久久精品芒果| 一区二区免费在线视频| 久久久97精品| 午夜免费在线观看精品视频| 欧美成人国产一区二区| 欧美在线观看视频| 欧美精品一区二区三区在线播放 | 国内精品嫩模av私拍在线观看| 欧美高清在线一区| 国产一区二区精品久久91| 欧美大片第1页| 亚洲高清中文字幕| 久久久天天操| 国产精品入口66mio| 欧美激情区在线播放| 国产精品一区毛片| 91久久线看在观草草青青| 国产亚洲精品久久久久动| 亚洲精品一区二| 亚洲激情另类| 久久在线视频在线| 久久美女性网| 国产美女搞久久| 亚洲尤物在线视频观看| 亚洲天堂av在线免费| 欧美激情精品久久久久久久变态| 欧美a级一区二区| 亚洲成人资源| 久久在线免费观看| 欧美国产欧美亚州国产日韩mv天天看完整| 国产亚洲精品久久久久婷婷瑜伽| 亚洲小说欧美另类社区| 亚洲一区二区免费视频| 欧美日韩网址| 中文日韩在线| 午夜精品一区二区三区在线播放| 欧美视频1区| 亚洲午夜精品视频| 亚洲一区欧美二区| 国产精品美女诱惑| 亚洲男人的天堂在线aⅴ视频| 亚洲欧美欧美一区二区三区| 国产精品视频免费| 欧美一区二区三区视频在线 | 亚洲国产mv| 噜噜噜久久亚洲精品国产品小说| 欧美成人免费观看| 亚洲日本国产| 欧美精品久久久久久久久久| 亚洲全部视频| 亚洲欧美日韩另类| 国产一级久久| 久久中文精品| 日韩一区二区精品| 新67194成人永久网站| 国产一区二区三区高清播放| 久久综合给合久久狠狠色| 亚洲国产欧美一区二区三区同亚洲 | 国产精品一区二区三区四区| 欧美夜福利tv在线| 欧美高清在线一区二区| 一区二区日韩免费看| 国产麻豆日韩欧美久久| 免费成年人欧美视频| av不卡在线看| 久久综合电影| 亚洲深夜影院| 精品成人一区| 99国产精品视频免费观看| 午夜精品999| 亚洲国产精品欧美一二99| 欧美日韩在线视频观看| 欧美亚洲综合在线| 日韩视频永久免费| 久久久噜噜噜久久人人看| 亚洲国产另类精品专区 | 亚洲激情视频在线播放| 欧美午夜精品久久久久免费视| 欧美伊人久久大香线蕉综合69| 欧美激情一区二区三区在线视频 | 亚洲人成绝费网站色www| 欧美少妇一区二区| 狂野欧美性猛交xxxx巴西| 正在播放欧美视频| 欧美国产极速在线| 欧美自拍偷拍午夜视频| 日韩亚洲欧美一区二区三区| 国产亚洲毛片在线| 国产精品久久久久国产精品日日| 久久影视三级福利片| 性刺激综合网| 亚洲午夜在线视频| 亚洲精选一区| 欧美激情五月| 蜜桃av一区| 久久精品亚洲一区| 小黄鸭视频精品导航| 9l视频自拍蝌蚪9l视频成人| 在线观看日韩专区| 国产一区二区三区直播精品电影| 欧美性jizz18性欧美|