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

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

Hdu 2363 Cycling(最短路)

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

評(píng)論

# re: Hdu 2363 Cycling(最短路)  回復(fù)  更多評(píng)論   

你好我做這題的時(shí)候是二分高度差的,然后根據(jù)這個(gè)高度差做一遍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>
            国产午夜精品一区二区三区欧美 | 欧美午夜精品久久久久久久| 欧美成人黑人xx视频免费观看| 国产在线精品成人一区二区三区 | 日韩午夜高潮| 国产精品激情电影| 亚洲欧美成人综合| 欧美.com| 亚洲国产婷婷| 欧美国产91| 宅男精品视频| 欧美国产乱视频| 亚洲精品综合| 国产精品久久久久久户外露出 | 国内欧美视频一区二区| 亚洲第一精品久久忘忧草社区| 欧美精品一区二区三区很污很色的| 亚洲欧美综合国产精品一区| 欧美jizzhd精品欧美巨大免费| 欧美激情精品久久久久久久变态| 91久久嫩草影院一区二区| 久久蜜桃av一区精品变态类天堂| 夜夜嗨av一区二区三区四区| 亚洲电影自拍| 国产视频在线观看一区二区三区 | 欧美三级韩国三级日本三斤| 久久精品午夜| 欧美一区影院| 欧美一级一区| 亚洲在线观看免费| 中文一区二区| 久久免费高清| 美女国产一区| 久久性天堂网| 国产精品男女猛烈高潮激情 | 国际精品欧美精品| 亚洲人精品午夜| 加勒比av一区二区| 国产欧美 在线欧美| 国产精品wwwwww| 在线成人免费观看| 在线观看国产一区二区| 亚洲一区二区在线观看视频| 一个色综合av| 巨胸喷奶水www久久久免费动漫| 亚洲欧美在线磁力| 午夜精品99久久免费| 欧美大片18| 久久国产手机看片| 久久久久久久综合| 欧美成年人在线观看| 欧美成人免费va影院高清| 国产精品中文字幕欧美| 激情av一区| 欧美综合国产| 欧美国产在线视频| 久久精品日韩一区二区三区| 国产精品久久夜| 亚洲一区二区三区免费观看| 午夜精品三级视频福利| 日韩午夜激情av| 欧美一级淫片播放口| 亚洲一区二区少妇| 一级日韩一区在线观看| 亚洲一区二区在线视频| 欧美日韩在线精品一区二区三区| 国产精品久久久久久av福利软件 | 99成人在线| 欧美亚洲一区二区在线| 国产精品人人做人人爽| 国产主播一区二区| 久久精品国产成人| 亚洲国产高清aⅴ视频| 夜夜嗨网站十八久久| 欧美国产日产韩国视频| 亚洲精品一二三区| 亚洲午夜免费视频| 亚洲午夜高清视频| 看片网站欧美日韩| 欧美三级在线视频| 亚洲欧洲午夜| 99ri日韩精品视频| 国产欧美另类| 欧美电影免费观看| 欧美视频免费| 久久精品国产欧美激情| 久久激情五月丁香伊人| 久久爱另类一区二区小说| 欧美日韩在线高清| 亚洲欧美日韩精品一区二区| 农村妇女精品| 欧美国产日韩一二三区| 新狼窝色av性久久久久久| 亚洲激情小视频| 欧美日韩一区二区三区四区五区| 亚洲综合第一页| 久久久久久网| 亚洲欧美日韩国产精品| 久久免费黄色| 亚洲欧美日韩精品久久久| 久久一区国产| 久久精品国语| 国产精品国产成人国产三级| 牛人盗摄一区二区三区视频| 国产精品国产福利国产秒拍| 亚洲电影免费| 国产啪精品视频| 9l视频自拍蝌蚪9l视频成人| 尤物99国产成人精品视频| 国产精品99久久久久久白浆小说| 在线观看亚洲视频| 中文在线一区| 一本色道久久88亚洲综合88| 久久久久久久一区| 久久成人国产精品| 国产精品sm| 亚洲日韩中文字幕在线播放| 欧美国产一区二区三区激情无套| 亚洲综合另类| 欧美精品首页| 亚洲欧美成人一区二区三区| 另类图片国产| 久久精品国产亚洲一区二区三区 | 理论片一区二区在线| 久久av红桃一区二区小说| 欧美久久视频| 亚洲国产精品v| 亚洲激情网站| 99国产一区| 99re这里只有精品6| 免费高清在线一区| 亚洲久色影视| 久久性色av| 欧美成在线观看| 亚洲国产经典视频| 玖玖玖国产精品| 欧美福利小视频| 亚洲大片在线| 另类成人小视频在线| 欧美黄色一区| 亚洲狼人综合| 欧美三级午夜理伦三级中视频| 99re这里只有精品6| 亚洲午夜羞羞片| 欧美午夜在线一二页| 亚洲午夜精品在线| 欧美在线播放| 欧美日韩国产天堂| 久久久亚洲国产天美传媒修理工| 国产精品v片在线观看不卡| 一区二区三区免费网站| 亚洲精品视频在线观看免费| 亚洲一区二区三区中文字幕| 欧美二区在线看| 欧美肥婆在线| 亚洲免费观看高清在线观看| 欧美日本国产视频| 一本色道久久综合亚洲精品小说 | 亚洲福利电影| 一区二区三区av| 久久精品一区中文字幕| 欧美中文在线观看国产| 在线观看一区欧美| 欧美欧美天天天天操| 亚洲午夜免费视频| 久久一区二区精品| 国产欧美一级| 久久久久久久综合| 亚洲日本中文字幕| 欧美一级专区| 亚洲电影下载| 国产精品久久久久av免费| 午夜精品久久久久久久白皮肤| 久久亚洲国产精品一区二区| 亚洲激情成人在线| 国产精品人人做人人爽| 久久综合给合久久狠狠色| 亚洲精品乱码久久久久久日本蜜臀 | 欧美a级片网站| 亚洲精选成人| 国产人成一区二区三区影院| 欧美国产1区2区| 欧美在线日韩精品| 日韩视频二区| 欧美国产综合视频| 久久riav二区三区| 亚洲视频第一页| 老牛国产精品一区的观看方式| 亚洲精品亚洲人成人网| 久久精品国内一区二区三区| 亚洲麻豆av| 在线日韩日本国产亚洲| 国产欧美一区二区视频| 欧美日韩精品综合在线| 美女视频黄免费的久久| 欧美一区二区三区在线视频 | 蜜桃久久av| 久久精品免费| 亚洲欧美一区二区三区久久| 日韩一区二区久久|