【Gym - 102500G】Gnoll Hypothesis

比賽時帶入的第三個參數代錯了,樣例居然還都能正常通過…
下次一定要先在紙上完整把遞推式寫下來再敲代碼

#include<bits/stdc++.h>
#define rep(i,n) for(int i=1;i<=n;i++)

using namespace std;
typedef long long ll;

const int N=400005;
ll n,m,k,x,y,tms,Hx=1;
double a[N];

int tr(int t) {
    return (t-2+n)%n+1;
}

double wk(int i,int n,int m,double now) {
    if(m==0) return now;
    return m*(wk(tr(i),n-1,m-1,now+a[tr(i)])-now)/n+now;
}

void solve() {
    rep(i,n) cin>>a[i];
    rep(i,n) {
        if(i-1) cout<<' ';
        cout<<fixed<<setprecision(8)<<m*wk(i,n-1,n-m,a[i])/n;
    }
    cout<<'\n';
}

int main() {
    ios::sync_with_stdio(false);
    while(cin>>n>>m) solve();
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章