結果
問題 | No.66 輝け☆全国たこやき杯 |
ユーザー |
![]() |
提出日時 | 2018-03-31 18:56:29 |
言語 | C++11 (gcc 13.3.0) |
結果 |
RE
|
実行時間 | - |
コード長 | 2,000 bytes |
コンパイル時間 | 1,043 ms |
コンパイル使用メモリ | 104,864 KB |
実行使用メモリ | 20,856 KB |
最終ジャッジ日時 | 2024-06-26 03:38:24 |
合計ジャッジ時間 | 3,941 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 3 RE * 7 |
ソースコード
# include <iostream># include <algorithm># include <vector># include <string># include <set># include <map># include <cmath># include <iomanip># include <functional># include <utility># include <stack># include <queue># include <list># include <tuple># include <unordered_map># include <numeric># include <complex># include <bitset># include <random># include <chrono>using namespace std;using LL = long long;using ULL = unsigned long long;constexpr int INF = 2147483647;constexpr int HINF = INF / 2;constexpr double DINF = 100000000000000000.0;constexpr double HDINF = 50000000000000000.0;constexpr long long LINF = 9223372036854775807;constexpr long long HLINF = 4500000000000000000;const double PI = acos(-1);int dx[4] = { 0,1,0,-1 }, dy[4] = { 1,0,-1,0 };template <typename T_char>T_char TL(T_char cX) { return tolower(cX); };template <typename T_char>T_char TU(T_char cX) { return toupper(cX); };# define ALL(x) (x).begin(),(x).end()# define UNIQ(c) (c).erase(unique(ALL((c))),(c).end())# define LOWER(s) transform(ALL((s)),(s).begin(),TL<char>)# define UPPER(s) transform(ALL((s)),(s).begin(),TU<char>)# define mp make_pair# define eb emplace_back# define FOR(i,a,b) for(LL i=(a);i<(b);i++)# define RFOR(i,a,b) for(LL i=(a);i>=(b);i--)# define REP(i,n) FOR(i,0,n)# define INIT std::ios::sync_with_stdio(false);std::cin.tie(0)double dp[3][2000];double s[2000];double memo[2000][2000];int m;int main() {cin >> m;REP(i, pow(2, m)) {cin >> s[i];dp[0][i] = 1.0;}REP(i, pow(2, m)) {REP(j, pow(2,m)){memo[i][j] = (s[i] * s[i]) / (s[i] * s[i] + s[j] * s[j]);}}int mask = pow(2,m+2)-1;for (int i = 0; i < m; i++) {mask -= 1 << i;REP(j, 1 << m) {REP(k, 1 << m) {if ((j&mask) == (k&mask) && ((j^k)&(1 << i)))dp[i + 1][j] += dp[i][k] * memo[j][k];}dp[i + 1][j] *= dp[i][j];}}cout << fixed << setprecision(13) << dp[m][0] << endl;//system("pause");}