[伯俊]1956号うんどう
[伯俊]1956号うんどう
1.質問
Vの村とEの道路からなる都市があります.道は村と村の間にあり、一方通行です.村のコンビニ1番からV番まで番号があります.
道路に沿ってトレーニングの道を見つけたいです.運動後はスタート地点に戻ったほうがいいので、周期を見つけたいです.しかし、あなたは運動が嫌いなので、道の長さの和を最小にしたいと思っています.
道路情報を取得する場合は、道路の長さの和の最小周期を検索するプログラムを作成します.2つの村を往復する場合も自転車に含めて注意が必要です.
2.入力
最初の行では、VとEはスペースを隔てています.(2≦V≦400,0≦E≦V(V−1)),次のE行はそれぞれ3つの整数a,b,cを与える.これは、a番村からb番村までの距離がcの道路があることを意味します.(注意a→b)距離は10000以下の自然数です.(a,b)同じ道を何度も交わらない.
3.出力
1行目に最小サイクル道路長の和を出力します.モーションパスが見つからない場合は、-1を出力します.
4.解答プルード・ワッシャーを使用しました. サイクルを探す必要があるため、所望の結果値は の一般的なプルード・ワッシャーは フロイド・ワッシャーが完了すると、 5.最初のコードと異なる点サイクルが見つからない場合は、出力-1のコードを削除して変更します. 6.コード
1.質問
Vの村とEの道路からなる都市があります.道は村と村の間にあり、一方通行です.村のコンビニ1番からV番まで番号があります.
道路に沿ってトレーニングの道を見つけたいです.運動後はスタート地点に戻ったほうがいいので、周期を見つけたいです.しかし、あなたは運動が嫌いなので、道の長さの和を最小にしたいと思っています.
道路情報を取得する場合は、道路の長さの和の最小周期を検索するプログラムを作成します.2つの村を往復する場合も自転車に含めて注意が必要です.
2.入力
最初の行では、VとEはスペースを隔てています.(2≦V≦400,0≦E≦V(V−1)),次のE行はそれぞれ3つの整数a,b,cを与える.これは、a番村からb番村までの距離がcの道路があることを意味します.(注意a→b)距離は10000以下の自然数です.(a,b)同じ道を何度も交わらない.
3.出力
1行目に最小サイクル道路長の和を出力します.モーションパスが見つからない場合は、-1を出力します.
4.解答
i==j
である.i==j
の位置を0に初期化したが、周期を探す必要があるため、i==j
も同様にINF
に初期化した.i==j
ポイントで最高値が出力されます.(ただし、すべての値がINF
であればループはないので、-1をminValue
に代入して出力する.)#include <iostream>
#include <algorithm>
#define INF 1e9
using namespace std;
int graph[401][401];
int main() {
cin.tie(NULL);
ios_base::sync_with_stdio(false);
int number_of_villages, number_of_roads;
cin >> number_of_villages >> number_of_roads;
for (int i = 1; i <= number_of_villages; i++){
for (int j = 1; j <= number_of_villages; j++) {
graph[i][j] = INF;
}
}
for (int i = 0; i < number_of_roads; i++){
int from, to, cost;
cin >> from >> to >> cost;
graph[from][to] = cost;
}
for (int k = 1; k < number_of_villages; k++){
for (int i = 1; i <= number_of_villages; i++) {
for (int j = 1; j <= number_of_villages; j++) {
graph[i][j] = min(graph[i][j], graph[i][k] + graph[k][j]);
}
}
}
int minValue = INF;
for (int i = 1; i <= number_of_villages; i++){
minValue = min(minValue, graph[i][i]);
}
if (minValue == INF) minValue = -1;
cout << minValue;
}
Reference
この問題について([伯俊]1956号うんどう), 我々は、より多くの情報をここで見つけました https://velog.io/@e7838752/boj1956テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol