P5239 回憶京都(3月洛谷月賽)

2021-09-11 19:11:06 字數 617 閱讀 9365

對任意給定的n和m,求

首先我們需要組合數表,可以使用遞推公式

void solve()}}

當我們得到了這個矩陣之後,我們要求n行m列之間所有元素的和,因為還有很多詢問,肯定不能暴力,我們只需要做預處理就可以解決問題,我們用 sum[i][j] 代表 第 i 行,前 j 個數的和,因此在詢問給出n,m之後,我們只需要對前n行的sum[i][m]求和即可時間複雜度o(n*q)

**如下:

#include using namespace std;

typedef long long ll;

const int maxn = 1e3 + 10;

const int mod = 19260817;

int c[maxn][maxn];

void solve()

}}int sum[maxn][maxn];

int main()

}int ans = 0,n,m;

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

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

}return 0;

}

P5239 回憶京都

先要了解一下組合數和楊輝三角的關係 c 0,0 c 1,0 c 1,1 c 2,0 c 2,1 c 2,2 楊輝三角大概就是這樣乙個結構,所以只要乙個二維字首就好了qaq就變成了 c 0,0 c 1,0 c 0,0 c 1,1 c 1,0 c 0,0 c 2,0 c 1,0 c 0,0 c 2,1 ...

洛谷七月月賽P3817

小a有n個糖果盒,第i個盒中有a i 顆糖果。小a每次可以從其中一盒糖果中吃掉一顆,他想知道,要讓任意兩個相鄰的盒子中加起來都只有x顆或以下的糖果,至少得吃掉幾顆糖。輸入格式 第一行輸入n和x。第二行n個整數,為a i 輸出格式 至少要吃掉的糖果數量。輸入樣例 1 3 3 2 2 2 輸出樣例 1 ...

洛谷三月月賽 P5238 整數校驗器

有些時候需要解決這樣一類問題 判斷乙個數 是否合法。合法當且僅當其滿足如下條件 你需要實現這樣乙個校驗器,對於給定的 l,rl,rl,r,多次判斷 是否合法。輸入格式 第一行三個整數 l,r,tl,r,tl,r,t,表示校驗器的校驗區間為 l,r l,r l,r 以及需要校驗的 的個數。接下來 tt...