傳送門
實際上就是求
\(\sum^_\frac\sum^_\frac\sum^_\frac\cdots(a[1]<=a[2]<=a[3]\cdots)\)
題目給我們的a[i]並不保證是非遞減的,比如乙個1 4 2的序列,所以實際上的積分是\(\frac\sum^_\sum^_\sum^_\)
那麼我們假設處理好的每個積分上限為\(b[i]\)
以三項為例
那麼把係數往前提就有
\(\frac_a[i]}\sum^_\sum^_\sum^_\)
我們從最後乙個積分往前積,一開始要維護的多項式只有乙個1,\(1dk=k\),已知上下限做定積分就有
\(\frac_a[i]}\sum^_\sum^_(b[3]-j)\)
同理\((b[3]-j)dj=b[3]j-\frac\)
\(\frac_a[i]}\sum^_b[3]i-\frac\)
這就差不多了,維護下這個多項式就行然後我把自己wa飛了
#include using namespace std;
/* freopen("k.in", "r", stdin);
freopen("k.out", "w", stdout); */
// clock_t c1 = clock();
// std::cerr << "time:" << clock() - c1 <<"ms" << std::endl;
//#pragma comment(linker, "/stack:1024000000,1024000000")
#define de(a) cout << #a << " = " << a << endl
#define rep(i, a, n) for (int i = a; i <= n; i++)
#define per(i, a, n) for (int i = n; i >= a; i--)
#define ls ((x) << 1)
#define rs ((x) << 1 | 1)
typedef long long ll;
typedef unsigned long long ull;
typedef pairpii;
typedef pairpdd;
typedef pairpll;
typedef vectorvii;
#define inf 0x3f3f3f3f
const ll inf = 0x3f3f3f3f3f3f3f3f;
const ll maxn = 1e5 + 7;
const ll maxm = 2e6 + 7;
const ll mod = 1e9 + 7;
const double eps = 1e-6;
const double pi = acos(-1.0);
ll quick_pow(ll a, ll b)
return ans;
}ll mp[3005];
ll a[3005];
ll b[3005];
ll pre[3005];
int main()
for (int i = n; i >= 2; i--)
ll now = 2;
mp[1] = 1;
for (int i = n; i >= 2; i--)
(mp[0] += temp) %= mod;
for (int j = now; j >= 1; j--)
mp[0] = 0;
now++;
}ll son = 0;
for (int i = 0; i <= n; i++)
ll inv = quick_pow(div, mod - 2);
printf("%lld\n", ((son * inv % mod) + mod) % mod);
}return 0;
}
6 4 7 不可變類
1.使用private和final修飾符來修飾該類的成員變數 2.提供帶引數構造器,用於提供傳入引數來初始化類裡的成員變數 3.僅為該類的成員變數提供getter方法 4.重寫object類的hashcode 和equals 方法。package chap6 4 class immutablestr...
C 程式設計基礎 實驗(6) 4 7
4.建立靜態類,在其中定義乙個泛型方法,實現查詢陣列元素功能。using system using system.collections using system.collections.generic using system.linq using system.text namespace pr...
刷題 力扣 647
題目鏈結 題目描述 給定乙個未經排序的整數陣列,找到最長且 連續遞增的子串行,並返回該序列的長度。連續遞增的子串行 可以由兩個下標 l 和 r l r 確定,如果對於每個 l i r,都有 nums i nums i 1 那麼子串行 nums l nums l 1 nums r 1 nums r 就...