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

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

Hdu 2363 Cycling(最短路)

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

評論

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

你好我做這題的時候是二分高度差的,然后根據這個高度差做一遍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>
            欧美ed2k| 亚洲一区二区四区| 国产精品黄视频| 欧美大尺度在线| 国产麻豆91精品| 一区二区三区国产| 99www免费人成精品| 久久黄色级2电影| 性xx色xx综合久久久xx| 欧美承认网站| 欧美成人在线免费视频| 国产日产欧美一区| 一区二区三区不卡视频在线观看 | 欧美日韩mv| 麻豆精品视频在线| 国产亚洲高清视频| 亚洲桃花岛网站| 亚洲一卡久久| 欧美日韩一区二区在线播放| 亚洲欧洲偷拍精品| 亚洲国产精品久久久| 久久九九全国免费精品观看| 久久九九热re6这里有精品| 国产精品视频免费在线观看| 在线亚洲激情| 亚洲在线观看视频网站| 欧美性生交xxxxx久久久| 亚洲精品欧美在线| 99国产精品99久久久久久粉嫩| 欧美不卡一区| 亚洲国产天堂久久国产91| 亚洲激情小视频| 欧美sm视频| 最新国产精品拍自在线播放| 夜夜嗨av一区二区三区网站四季av| 模特精品裸拍一区| 91久久精品日日躁夜夜躁欧美| 亚洲精品一区二区在线| 欧美激情第9页| 99re66热这里只有精品3直播| 在线一区二区三区做爰视频网站| 欧美色中文字幕| 亚洲欧美日韩在线播放| 久久精品视频导航| 亚洲福利免费| 欧美精品一线| 亚洲一区二区三区国产| 久久久久久**毛片大全| 亚洲激情在线视频| 欧美日韩一区二区三区高清| 亚洲一区www| 久久中文字幕一区| 亚洲国产清纯| 国产精品sm| 久久九九久精品国产免费直播 | 亚洲欧美制服另类日韩| 国产精品资源| 另类综合日韩欧美亚洲| av不卡在线看| 久久女同互慰一区二区三区| 亚洲伦理久久| 国产欧美日韩综合一区在线观看 | 99香蕉国产精品偷在线观看| 欧美在线999| 亚洲黄色影院| 国产精品视频在线观看| 久久精品女人的天堂av| 亚洲精品日产精品乱码不卡| 久久精品一本| 一区二区免费在线视频| 国产一区二区三区无遮挡| 欧美精品观看| 久久成人18免费观看| 99热免费精品| 欧美成人中文字幕在线| 欧美一级黄色录像| 亚洲日本中文字幕免费在线不卡| 国产精品视频999| 欧美激情一区二区三区在线视频 | 欧美午夜精品一区| 久久久久久久性| 亚洲一级二级在线| 亚洲国产高清自拍| 久久综合久久美利坚合众国| 亚洲免费在线| 99视频热这里只有精品免费| 韩日成人在线| 国产老肥熟一区二区三区| 欧美激情综合色综合啪啪| 久久久999成人| 亚洲综合99| 一区二区三区精密机械公司| 亚洲国产日韩一级| 欧美v日韩v国产v| 久久久精品五月天| 亚洲欧美在线磁力| 亚洲一区二区三区中文字幕在线| 亚洲人成网站精品片在线观看 | 欧美成人嫩草网站| 久久久91精品国产| 欧美一级免费视频| 亚洲尤物精选| 亚洲午夜精品| 亚洲视屏在线播放| 一区二区三区视频在线播放| 亚洲美洲欧洲综合国产一区| 亚洲人屁股眼子交8| 亚洲国产毛片完整版| 一区免费观看| 精品动漫3d一区二区三区免费| 国产亚洲一级| 国产一区二区三区高清播放| 国产亚洲欧美一区在线观看| 国产日韩精品一区二区三区在线 | 亚洲日本中文字幕区 | 激情成人中文字幕| 国产性色一区二区| 国产一区二区三区在线观看视频| 国产欧美日韩免费| 国产一级一区二区| 伊大人香蕉综合8在线视| 伊人成人在线视频| 亚洲国产欧美不卡在线观看| 亚洲人午夜精品| a4yy欧美一区二区三区| 亚洲欧美www| 欧美中文字幕不卡| 久久婷婷蜜乳一本欲蜜臀| 欧美成人一区二区| 亚洲精品中文字幕在线| 这里只有精品视频在线| 亚洲欧美成人网| 久久精品官网| 欧美激情一区三区| 国产精品国产馆在线真实露脸| 国产日韩欧美在线播放| 国产主播精品在线| 亚洲欧洲综合另类在线| 亚洲一区二区精品视频| 久久国产精品99精品国产| 免费看黄裸体一级大秀欧美| 亚洲全黄一级网站| 亚洲视频一区二区| 久久人人爽人人爽| 欧美涩涩网站| 国内久久视频| 夜夜嗨一区二区| 久久av二区| 91久久久国产精品| 亚洲女ⅴideoshd黑人| 老色批av在线精品| 国产精品免费在线| 亚洲国产女人aaa毛片在线| 亚洲在线视频网站| 免费av成人在线| 亚洲色图制服丝袜| 另类天堂av| 国产亚洲激情| 亚洲一区二区三区在线| 六月天综合网| 亚洲一区二区三区在线观看视频| 久久久久久久久久久成人| 欧美日韩综合不卡| 亚洲国产精品尤物yw在线观看| 性高湖久久久久久久久| 亚洲黑丝在线| 久久久久久久久岛国免费| 国产精品久久午夜夜伦鲁鲁| 亚洲免费成人| 欧美成人精品在线观看| 亚洲欧美日韩一区在线| 欧美日韩国产二区| 亚洲国产一二三| 久久综合狠狠综合久久综青草 | 久久免费午夜影院| 国产精品视频免费观看www| 99精品福利视频| 欧美高清在线一区二区| 久久99伊人| 国产欧美日韩一区二区三区在线观看| 99国产精品自拍| 欧美国产一区二区| 久久久久www| 好看的日韩av电影| 欧美专区日韩专区| 亚洲综合色在线| 国产精品久久夜| 亚洲综合首页| 一区二区三欧美| 欧美视频一区二区三区四区| 一区二区精品在线观看| 亚洲精品影视在线观看| 欧美大胆人体视频| 亚洲精品一区二区在线| 亚洲国产日韩欧美一区二区三区| 久久婷婷综合激情| 亚洲国产精品久久久| 欧美国产视频一区二区| 欧美jizz19性欧美| 亚洲毛片在线看|