結果
問題 |
No.3172 三角関数べき乗のフーリエ級数展開
|
ユーザー |
|
提出日時 | 2025-06-07 04:25:56 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,353 bytes |
コンパイル時間 | 2,303 ms |
コンパイル使用メモリ | 206,112 KB |
実行使用メモリ | 7,848 KB |
最終ジャッジ日時 | 2025-06-07 04:26:00 |
合計ジャッジ時間 | 3,486 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 4 WA * 11 |
ソースコード
#include <bits/stdc++.h> using namespace std; #define vi vector<ll> #define vii vector<pair<ll, ll>> #define ii pair<ll, ll> #define vll vector<long long int> using ll = long long int; #define pb push_back #define ss second #define ff first #define fl(i, n) for (ll i = 0; i < n; i++) #define fl1(i, n) for (ll i = 1; i < n; i++) #define flc(a, b) for (ll i = a; i <= b; i++) #define flr(a, b) for (ll i = a; i >= b; i--) #define nl "\n" #define br cout << "\n"; #define all(a) a.begin(), a.end() #define rall(a) a.rbegin(), a.rend() #define mod 998244353 #define inf 1e15 void print(vector<ll> &v) { for (auto x : v) cout << x << " "; cout << endl; } double dist[20][20]; map<ll, double> dp; double f(ll n,ll mask,ll i) { if(mask == (1 << (2 * n)) - 1) { //cout << "mask: " << mask << " i: " << i << nl; return 0.0; } if(dp[mask] != 0) return dp[mask]; double ans = inf; // mask = mask | (1<<i); for(ll j = 0 ; j<= 2*n ; j++){ if( (mask & (1<<j)) == 0 && (i != j)) { //cout << i<< " " << j << " " << nl; ll new_mask = mask | (1<<j) | (1<<i); for(ll k = 0 ; k <= 2*n ; k++){ if( (new_mask & (1<<k)) == 0) { //cout << i<< " " << j << " " << k << " " << new_mask << nl; ans = min(ans, dist[i][j] + f(n,new_mask,k)); } } } } return dp[mask] = ans; } void f(ll l, ll r, vector<pair<ll, ll>> &cls) { fl(i,3) cout << cls[l].second << " " << cls[r].second << " "; br if(l == r) return; fl(i,3) cout << cls[r].second << " " << cls[l].second << " "; br } void erase (set<ll> &st){ st.erase(st.begin()); } void solve(){ ll n ; cin >> n; ll t = n+1,nn = n-1; ll a = n, b = 1; vi v; v.pb(2); while(nn>0){ v.pb((v.back()*a)/b); a--,b++; nn-=2; } // v.pop() if(!(n&1)) v[v.size()-1] = v.back()/2; reverse(all(v)); //print(v); if(n&1) cout <<0 <<" "; for(ll i = 0 ; i<v.size()-1 ; i++ ){ cout << v[i] << " 0 "; } cout << v.back()<<nl; } int main() { // ios_base::sync_with_stdio(false); // cin.tie(nullptr); int t=1; // cin >> t; for (int i = 0; i < t; i++) { solve(); } return 0; }