結果
問題 |
No.58 イカサマなサイコロ
|
ユーザー |
![]() |
提出日時 | 2025-07-19 23:13:16 |
言語 | C#(csc) (csc 3.9.0) |
結果 |
AC
|
実行時間 | 29 ms / 5,000 ms |
コード長 | 1,578 bytes |
コンパイル時間 | 4,307 ms |
コンパイル使用メモリ | 111,952 KB |
実行使用メモリ | 25,896 KB |
最終ジャッジ日時 | 2025-07-19 23:13:22 |
合計ジャッジ時間 | 3,782 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 10 |
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc) Copyright (C) Microsoft Corporation. All rights reserved.
ソースコード
using System; class Program { static void Main() { int n = int.Parse(Console.ReadLine()); int k = int.Parse(Console.ReadLine()); var dp = new long[n+1, 6*n+1]; dp[0, 0] = 1; for (var i = 0; i < n; ++i) { for (var j = 0; j <= 6*n; ++j) { if (dp[i, j] != 0) { for (var l = 1; l <= 6; ++l) { dp[i+1, j+l] += dp[i, j]; } } } } var dp2 = new long[n+1, 6*n+1]; dp2[0, 0] = 1; for (var i = 0; i < k; ++i) { for (var j = 0; j <= 6*n; ++j) { if (dp2[i, j] != 0) { for (var l = 4; l <= 6; ++l) { dp2[i+1, j+l] += dp2[i, j] * 2; } } } } for (var i = k; i < n; ++i) { for (var j = 0; j <= 6*n; ++j) { if (dp2[i, j] != 0) { for (var l = 1; l <= 6; ++l) { dp2[i+1, j+l] += dp2[i, j]; } } } } long cnt = 0; double ans = 0; var x = Math.Pow(6, n*2); for (var i = n+1; i <= 6*n; ++i) { cnt += dp[n, i-1]; ans += cnt * dp2[n, i] / x; } Console.WriteLine(ans); } }