[過去ログ] プログラミングのお題スレ Part13 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
316
(5): 2019/02/22(金)21:42 ID:THqrb0iU(1)調 AAS
お題:
長方形のフィールドが与えられる。フィールド上では上下左右に移動することができる。
各マスの数字はそのマスに入るためのコストを表す。
SからGに向かうときの最小コストを求めよ。(SとGのコストは0とする)

S5111
1115G
=> 6

S1111
98642
G1111
=> 9

13457689768914512071934123457
G4578901258901212890361125312
37890423076834712378998725463
16890102569615902061456259893
34582934765923812893461515232
57896123896741378915691551697
89013897456123457162501835479
21389046013845610034623405686
8902346203948612341356362342S
=> ?
331: 2019/02/23(土)08:45 ID:DQY5g4De(1/3)調 AAS
>>316
これは、本格的だな

ダイクストラ・A* みたいな、順位キュー(priority queue)を使わないと、いけないかも
333: 2019/02/23(土)12:01 ID:+GfRG2y6(1/2)調 AAS
>>316 Java
https://ideone.com/ZhJHKg
346
(1): 2019/02/23(土)15:15 ID:R2s6jSV3(7/7)調 AAS
できた
JavaScript
const prodPrimes = n => {
const primes = [1];
for (let m = n; m > 1; m--) {
let prime = 0;
for (let i = 2; i <= m - 1; i++) {
if (m % i === 0) prime = i;
}
primes.push(prime || m);
}
return [...new Set(primes)].reduce((acc, p) => acc * p);
}
console.log(prodPrimes(1)); //=> 1
console.log(prodPrimes(3)); //=> 6
console.log(prodPrimes(4)); //=> 6
console.log(prodPrimes(5)); //=> 30

今夜はPythonで>>316に挑戦したい
353: 2019/02/23(土)18:14 ID:2kPF298z(1)調 AAS
>>316 Perl5 Dijkstra法による最短経路探索 (priority queueを用いない実装)
https://ideone.com/XcsBQe
354
(1): 2019/02/23(土)20:22 ID:ejRNWGjN(1)調 AAS
>>316
python(pypy) https://ideone.com/DV1w4s

本線: キュー使用したダイクストラ (+ 経路復元)。

サンプル程度なら、ワーシャルフロイド(頂点^3)でも回る、と同方も追加。
さすがにpythonには少々きつく、pypyに逃げた。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.045s