牛客多校2Eddy Walker 2

2021-09-26 15:13:34 字數 1100 閱讀 6761

線性遞推的下界 bm演算法

複雜度 k^2 * logn

正常矩陣快速冪 k^3 * logn( k 表示每一項由前k項遞推得到 ,n代表要得到的項)

看到咖啡雞的** 把前2*k+1項扔進去就可以了。

#include#define maxn 100005

#define inf 1000000000

#define mod 1000000007

#define rep(i,a,n) for (ll 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) ((int)(x).size())

using namespace std;

typedef vectorvi;

typedef long long ll;

typedef pairpii;

const ll mod=1000000007;

ll pow_mod(ll a,ll i)

return s;

}namespace linear_seq

ll solve(ll n,vi a,vi b)//a:coefficient b:initial value b[n+1]=a[0]*b[n]+...

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

if(ans<0) ans+=mod;

return ans;

}vi bm(vi s)

int main()

v.clear();

memset(f,0,sizeof(f));

f[0]=1;

v.push_back(f[0]);

for(ll i=1;i<2*k;i++)

printf("%lld\n",linear_seq::gao(v,n));

}return 0;

}

2018 牛客多校 2

problem a problem b 考慮第二種優惠,每乙個物品如果原價購買了,那麼向可以免費拿的那個物品連一條邊 在樹上被指向的那個點是父親 如果不考慮環的話,考慮樹上dp。設 f i 0 表示買掉以 i 為根的子樹需要的最小花費,設 f i 0 表示買掉以 i 為根的子樹並且 i 這個點是原價...

牛客多校1 1or2

題意 給定一張n點m邊的圖,以及每個點的理想出入度,求是否能夠通過選擇某些邊來使得新圖上每個點的出入度為理想出入度 做法 由於d i 的範圍為1 2,說明新圖中的連通分量要麼是鏈,要麼是環。對於此類最大匹配問題,可以用網路流來解決,但是由於可能存在奇環,這將導致找增廣路時,傳統的dinic演算法時間...

牛客多校2 Cover the tree

題意 給定一棵無根樹,求用最少的鏈覆蓋樹上所有的邊,並輸出每條鏈的首位兩端編號 做法 首先確認需要多少條鏈來覆蓋所有邊。顯然,當n 1時,只需要一條,鏈頭尾編號都為1 當n 2時,需要一條,鏈頭尾為1,2 當n 3時,上述兩種情況鏈的頭尾都是入度為1的點,而確實,當從乙個葉子節點1出發,向上走到假定...