題目
好野。
寫了一發分段多項式。
感覺要想清楚才好寫。
轉移是(定)積分的形式,階乘最後再除也沒問題(要記次數)。
轉移後的常數項,就是ri≤
xr_i\le x
ri≤
x的部分的貢獻。
a cc
ode\mathrm
accode
#include
#define maxn 405
#define p 998244353
#define rep(i,j,k) for(int i=(j),lim=(k);i<=lim;i++)
#define per(i,j,k) for(int i=(j),lim=(k);i>=lim;i--)
using
namespace std;
intpow
(int b,
int k)
int n,l[maxn]
,r[maxn]
,iv[maxn]
,a[maxn]
;int f[2]
[maxn]
[maxn]
,fac[maxn]
=,inv[maxn]
=,invf[maxn]=;
intcal
(int x,
int i)
intmain()
if(j+
1&& l[i+1]
<=a[j+1]
&& a[j+2]
<=r[i+1]
) f[now]
[j+1][
1]=(f[now]
[j+1][
1]+ s *
1ll*
cal(a[j+2]
-a[j+1]
,i+1))
% p;}}
int ans =0;
rep(j,
1,a[0]
-1)rep
(k,1
,n) ans =
(ans +
1ll* f[now]
[j][k]
* invf[k]
)% p;
printf
("%d\n"
,(ans+p)
%p);
}
牛客網 進製轉換oj
題目描述 給定乙個十進位制數m,以及需要轉換的進製數n。將十進位制數m轉化為n進製數 輸入描述 輸入為一行,m 32位整數 n 2 n 16 以空格隔開。輸出描述 為每個測試例項輸出轉換後的數,每個輸出佔一行。如果n大於9,則對應的數字規則參考16進製制 比如,10用a表示,等等 示例1輸入 7 2...
牛客網 數串
設有n個正整數,將他們連線成一排,組成乙個最大的多位整數。如 n 3時,3個整數13,312,343,連成的最大整數為34331213。如 n 4時,4個整數7,13,4,246連線成的最大整數為7424613。有多組測試樣例,每組測試樣例包含兩行,第一行為乙個整數n n 100 第二行包含n個數 ...
牛客網 數串
設有n個正整數,將他們連線成一排,組成乙個最大的多位整數。如 n 3時,3個整數13,312,343,連成的最大整數為34331213。如 n 4時,4個整數7,13,4,246連線成的最大整數為7424613。有多組測試樣例,每組測試樣例包含兩行,第一行為乙個整數n n 100 第二行包含n個數 ...