結果
問題 | No.2829 GCD Divination |
ユーザー |
|
提出日時 | 2024-08-02 21:54:13 |
言語 | Rust (1.83.0 + proconio) |
結果 |
WA
|
実行時間 | - |
コード長 | 567 bytes |
コンパイル時間 | 12,412 ms |
コンパイル使用メモリ | 405,040 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-08-02 21:54:51 |
合計ジャッジ時間 | 36,377 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 4 WA * 31 |
コンパイルメッセージ
warning: variable `N` should have a snake case name --> src/main.rs:16:3 | 16 | N: usize, | ^ help: convert the identifier to snake case: `n` | = note: `#[warn(non_snake_case)]` on by default
ソースコード
use proconio::input; use std::collections::HashMap; fn gcd(x: usize, y: usize) -> usize { if x < y { return gcd(y, x); } if y == 0 { return y; } gcd(y, x % y) } fn main() { input! { N: usize, } let mut dp = HashMap::new(); fn rec(dp: &mut HashMap<usize, f64>, n: usize) -> f64 { if n == 1 { return 0.0; } if let Some(&ans) = dp.get(&n) { return ans; } let mut sum = 1.0; for i in 1 .. n { sum += 1.0 + rec(dp, gcd(n, i)); } let ans = sum / (n - 1) as f64; dp.insert(n, ans); ans } println!("{}", rec(&mut dp, N)); }