結果
問題 | No.574 正多面体サイコロ |
ユーザー |
![]() |
提出日時 | 2024-05-14 06:31:17 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 43 ms / 2,000 ms |
コード長 | 1,931 bytes |
コンパイル時間 | 1,010 ms |
コンパイル使用メモリ | 106,796 KB |
最終ジャッジ日時 | 2025-02-21 13:59:23 |
ジャッジサーバーID (参考情報) |
judge3 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 20 |
ソースコード
//#pragma GCC target("avx2")//#pragma GCC optimize("O3")//#pragma GCC optimize("unroll-loops")#include <algorithm>#include <bitset>#include <cassert>#include <cmath>#include <complex>#include <deque>#include <iomanip>#include <iostream>#include <map>#include <queue>#include <set>#include <string>#include <tuple>#include <vector>using namespace std;using ll = long long;using pii = pair<int,int>;using pll = pair<ll,ll>;using pli = pair<ll,int>;#define TEST cerr << "TEST" << endl#define AMARI 998244353//#define AMARI 1000000007#define el '\n'#define El '\n'long double binom(int n,int k){long double ans = 1;int bunsi = n,bunbo = 1;for(int i = 0; i < k; i++){ans *= (long double)bunsi;ans /= (long double)bunbo;bunsi--; bunbo++;}return ans;}#define MULTI_TEST_CASE falsevoid solve(void){int f,n,k;cin >> f >> n >> k;long double ans = 0;for(int i = 1; i <= f; i++){for(int j = 0; j < k; j++){for(int l = k - j; l <= n - j; l++){//iより大きい目がj個、iがl個ある確率long double p = 1;int temp = j;while(temp--)p *= (long double)(f - i) / (long double)f;temp = l;while(temp--)p *= 1 / (long double)f;temp = n - j - l;while(temp--)p *= (long double)(i - 1) / (long double)f;//p *= binom(n,j) * binom(n - j,l)p *= binom(n,j);p *= binom(n - j,l);ans += p * i;}}}cout << fixed << setprecision(15);cout << ans << el;return;}void calc(void){return;}signed main(void){cin.tie(nullptr);ios::sync_with_stdio(false);calc();int t = 1;if(MULTI_TEST_CASE)cin >> t;while(t--){solve();}return 0;}