P1294 mestre ir para uma caminhada (Los Valley)

fundo tópico

Mestre recentemente se apaixonar. Mas é um amor não correspondido. "Mesmo um amor não correspondido, mas também cheio de amor," nunca desistir da busca de seu mestre. Hoje, esta manhã ensolarada, o sol subindo lentamente a partir do oeste. Então ele encontra um mestre, espero que antes do início da manhã lendo juntos e andando especialistas juntos em montanhas Ngau Tau. É claro, os especialistas não vai dar a oportunidade deste sonho, ele estava pronto para tudo.

título Descrição

Aotou montanha tem n Ponto de Vista e fuga entre o total de m vinte e dois pontos cénicas. Que ele não gosta de mestre processo muito emocionante, por isso aqueles cênica manchas especialista é nenhuma maneira que não vai optar por ir. Além disso, ela não gostava de ir para uma vista dos mesmos pontos mais de uma vez. Os especialistas querem que eles juntos desde o mais longo (não vai conversar com os especialistas durante a visualização), um mestre conhecido do transporte para que eles possam começar em qualquer um dos pontos de interesse turístico, mas também uma visão do fim de qualquer atrações.

Formato de entrada

A primeira linha, com os dois espaços separados por um inteiro n, m, depois de m linhas, a informação de cada pista: ambas as extremidades do número do ponto de visualização, o comprimento.

Formato de saída

Um inteiro que representa a sua mais longa viagem acompanhada.

de entrada de amostra e de saída

Entrada # 1

4 6

1 2 10

2 3 20

3 4 30

4 1 40

1 3 50

2 4 60

 

Saída # 1

150

 

Descrição / Dicas

Para 100% dos dados: n≤20, m≤50, não garante a ligação entre uma pluralidade de pontos de observação fuga vinte e dois.

 

Problema idéias solução:

Este é um problema mais fundamental encontrada no fundo, o pensamento muito claro. A chave é como armazenar esta informação para ajudar-nos a não procurar e como implementar a mesma atração mais de uma vez, como procurar o caminho mais longo.

  1. Para o problema do armazenamento aqui é a matriz de adjacência (matriz realmente bidimensional), tal como a [i] [j] armazenado no comprimento do caminho de i-ésimo e j-ésimo pontos de interesse da paisagem, caso não esteja presente entre os dois pontos de interesse estrada é definido como 0.

  2. Para não a mesma atração mais de uma vez, andou pontos marcados 1, novamente para evitar a pesquisa, evitando assim a possibilidade de ser procurado após uma busca até que saia a busca atual quando rescaling 0 atrações.

  3. Para a estrada mais longa de vista, já que cada busca é de um ponto de partida fixa da pesquisa, isso não garante que o ponto de partida atual para a apreensão de todos os caminhos pode ser a peça mais longa, de modo que em cada ponto procurar ponto mais uma vez começando, e continuamente atualizar o caminho máximo.

 

código:

. 1 #include <o iostream>
 2 #include <algoritmo>
 . 3 #include <CString>
 . 4  o uso  de espaço de nomes DST;
 . 5  
. 6  // pode ser usado para armazenar um relacionamento matriz binária 
. 7  int Mapa [ 51 é ] [ 51 é ] = { 0 }; 
 . 8  int n-, m;
 . 9  int Em Bandeira [ 21 é ] = { 0 };         // 0 indica não visitado, 1 representa já visitados 
10  int Maxx = 0 ;         // distância máxima 
. 11  vazio DFS ( int CUR,int SUM) {
 12 é      na bandeira [CUR] = 1. ;     // representa visitar
 13 é  //     cout << "CUR;" CUR << << "SUM:" << endl << SUM; 
14      
15      int FF = 0 ; 
 16      para ( int I = 1. ; I <= n-; i ++ ) {
 17.          IF (Flag In [I] == 1. )     Continuar ;     // salto embarrass 
18 é          IF (! Mapa [CUR] [I] = 0 ) {
 . 19              FF = 1 ;         // marcas o ponto ainda pode continuar 
20             DFS (I, + SUM Mapa [CUR] [I]); 
 21 é              na bandeira [I] = 0 ;         // trás, uma bandeira para cancelar o acesso back-off 
22 é          }
 23 é      }
 24      IF (FF == 0 ) {         // representantes assim, aqui sem saída actualizações do máximo, para evitar o acesso repetido de atracções 
25          Maxx = max (Maxx, SUM);
 26 é      } 
 27      de retorno ;
 28  } 
 29  int main () {
 30       CIN >> >> n- m;
 31 é       
32       por ( int K = 1. ; K <= m; K ++ ) {
33 é           int T1 = 0 , T2 = 0 ;
 34 é           CIN >> T1 >> T2;
 35           CIN >> mapa [T1] [T2];         // apenas uma entrada geral, determina-se que o mapa disponível [i] [j] ou mapa [ J] [I] 
36           Mapa [T2] [T1] = Mapa [T1] [T2];
 37 [      }
 38 é      
39      
40      para ( int I = 1. ; I <= N-; i ++ ) {    
 41 é          Memset (FLAG em, 0 , sizeof (bandeira));         // cada pesquisa sinal vazio      
42          da DFS (i, 0 );         // das atracções i iniciar a pesquisa         
43      }
 44      cout << maxx;
45      
46       retorno  0 ;
47 }

 

Acho que você gosta

Origin www.cnblogs.com/xwh-blogs/p/12579813.html
Recomendado
Clasificación