結果
| 問題 |
No.567 コンプリート
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2019-04-06 20:40:10 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,820 bytes |
| コンパイル時間 | 2,161 ms |
| コンパイル使用メモリ | 193,556 KB |
| 最終ジャッジ日時 | 2025-01-07 01:26:27 |
|
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 WA * 1 |
| other | AC * 2 WA * 9 TLE * 1 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef map<int, int> mii;
typedef pair<int, int> pii;
typedef pair<double,double> pdd;
typedef set<int> si;
typedef set<ll> sll;
typedef vector<int> vi;
typedef vector<pair<int, int > > vii;
typedef vector<ll> vll;
typedef vector<ld> vld;
typedef vector<vi> vvi;
typedef vector<vii> vvii;
typedef vector<vll> vvll;
#define Sort(x) sort(x.begin(),x.end())
#define Reverse(x) reverse(x.begin(),x.end())
#define ABS(a,b) ((a)<(b)?(b)-(a):(a)-(b))
constexpr ll MOD = 1e9+7;
// constexpr int INF = 1<<25;
// constexpr ll INF = 1LL<<50;
// Returns minimum of a and b.
// If a is less b, a is set to b.
template<typename T>
T checkmin(T& a, T b) {
if (a > b) {
a = b;
}
return a;
}
// Returns maximum of a and b.
// If a is less b, a is set to b.
template<typename T>
T checkmax(T& a, T b) {
if (a < b) {
a = b;
}
return a;
}
// a = (a+b)%MOD;
void addmod(ll& a, ll b) {
a = (a+b)%MOD;
}
// Forward declaration
template <typename T>
void dumpContents(const T& v, const string& msg="");
template <typename T>
void dumpContents(const T& v, const string& msg)
{
cerr << "### " << msg << " ###\n";
for (const auto& x : v) {
cerr << x << " ";
}
cerr << endl;
}
// ========== end of template ==========
constexpr int N_MAX = 1e6;
constexpr int KINDS = 6;
// [i][k]
// i番目までで (0-indexed), k種類揃っている確率
ld dp[N_MAX+1][KINDS+1] = {0.0};
int main(int argc, char** argv) {
int N;
cin >> N;
dp[0][0] = 1.0;
for (int i=1; i<=N; i++) {
for (int k=1; k<=KINDS; k++) {
dp[i][k] = dp[i-1][k]*double(k)/6.0 +
dp[i-1][k-1]*double(6-(k-1))/6.0;
}
}
cout << dp[N][6] << endl;
cout << flush;
return 0;
}