牛客多校第一場 F Sum of Maximum

2022-08-09 04:45:06 字數 929 閱讀 5279

列舉i從1到a[i]的最大值,每個段考慮i的貢獻。

關鍵在於要在o(n)或者o(nlogn)時間內求出乙個最高次為n次的多項式在x(x<=1e9)處的值來,可以利用拉格朗日差值。

首先求出將要計算的函式在x=1,2,3.....m+1(最高次為m次)處的函式值,然後用拉格朗日差值的公式就可以求出在任意一點處函式值

#include #include #include #include #include #include #include #include using namespace std;

typedef long long ll;

const ll mod=1e9+7;

const int maxn=100050;

int a[maxn];

ll x[maxn];

ll y[maxn];

ll inv[maxn];

ll pow(ll x,ll n)

return ans;

}void init()

}ll lagrange(ll p,int m)

for(int i = 1; i <= m; ++i)

ans%=mod;

if(ans<0) ans+=mod;

return ans;

}int main()

for(int j = 1; j <= m; ++j)

ll t=lagrange(a[i],m)-lagrange(a[i-1],m);

t%=mod;

ans=(ans+pro*t%mod);

pro=pro*a[i]%mod;

} ans=(ans%mod+mod)%mod;

printf("%lld\n", ans);

} return 0;

}

牛客寒假多校第一場A

題目描述 在絕地求生 吃雞 遊戲裡,不同的槍枝有不同的威力,更是可以搭配不同的配件,以提公升槍枝的效能。每一把槍都有其威力及其可裝備配件種類。每乙個配件有其所屬種類,可以為槍枝提供威力的百分比加成。每一把槍只能裝備乙個同類配件。給你n把槍枝和m個配件,槍的威力為p,可裝備的配件數量為k,為k個不同型...

牛客多校第一場 B Inergratiion

傳送門 給你乙個 根據線代的知識 我們可以將分母裂項,然後根據 int fracdx frac int frac 2 d frac frac 可以推得 我們的答案就是裂項後求出來的係數乘上 frac 詳情請看d神推導吧 include include include include include ...

2020 牛客多校第一場

a b suffix array f infinite string comparision jzk開場提出了兩倍最大的長度,然後 dh 說直接比較a b和b a即可,由於是訓練賽,不想寫太長的 然後交了一發直接比較的 就過了 includeusing namespace std string s1...