杜教BM模板

2021-08-30 15:54:26 字數 954 閱讀 1418

據說這個bug級模板可以求線性遞推式的第n項,只要手推遞推式的前幾項,放入模板就能求出第n項,前幾項求出的的越多越好,一般推出前8項就可以,但是有的題還是要多幾項。這個模板也就拿來水一下線上賽,結合oeis食用效果更佳。

注意替換**中的mod。

【例】**(4ms):

#include using namespace std;

#define rep(i,a,n) for (long long i=a;i=a;i--)

#define pb push_back

#define mp make_pair

#define all(x) (x).begin(),(x).end()

#define fi first

#define se second

#define sz(x) ((long long)(x).size())

typedef vectorvi;

typedef long long ll;

typedef pairpii;

const ll mod=1e8+7;

ll powmod(ll a,ll b) return res;}

// head

long long _,n;

namespace linear_seq

long long solve(ll n,vi a,vi b)

}rep(i,0,k) ans=(ans+res[i]*b[i])%mod;

if (ans<0) ans+=mod;

return ans;

}vi bm(vi s)

else

}return c;

}long long gao(vi a,ll n)

};int main()

}

杜教BM線性遞推自動化模板

這是乙個超厲害的模板,功能是輸入前幾項,能夠自動推導公式 前提 公式必須是線性的,前幾項越多越好,一般不低於8項,不然推出來不準確。原理 暫時沒搞清楚,聽說是利用矩陣來推導。include include include include include include include include...

黑科技之杜教bm

這個板子能夠解決任何線性遞推式,只要你確定某個數列的某項只與前幾項線性相關,那麼把它前若干項丟進去,這個板子就能給你返回你要求的某項的值。原理?待補充 includeusing namespace std define rep i,a,n for int i a i define per i,a,n...

杜教板子(BM)線性遞推式

據說這個模板可以解決任何線性遞推式,聽說是杜教的,只要我們手推遞推式的前幾項,然後扔進這個板子就哦了,我的天,前幾項丟的越多越好,8個以上就穩了 打臉了,有的題還是要多要一點 剛剛遇到乙個導8個沒用,導了50個就ok了。includeusing namespace std define rep i,...