2018牛客OI測試賽

2021-08-26 12:01:16 字數 1111 閱讀 4351

就是考慮每個數的貢獻,感覺好多題都是考慮單獨的貢獻,可是我還是沒養成這種思維t_t

每個數的貢獻就是:每次的選擇都有他-他作為最大-他作為最小

先排序,考慮第

i i

個數 ①每次選擇都有這個數的次數:先把他選了,然後在剩下n−

1' role="presentation" style="position: relative;">n−1

n−1個數中隨便選k−

1 k−1

個數,那麼就是 ck

−1n−

1 cn−

1k−1

②這個數作為最大:先把他選了,然後在剩下 i−

1 i−1

個比他小的數中選 k−

1 k−1

個,就是 ck

−1i−

1 ci−

1k−1

③這個數作為最小:先把他選了,然後在剩下 n−

i n−i

個數中選 k−

1 k−1

個數,就是 ck

−1n−

i cn−

ik−1

但是這是指數上的取模,我說怎麼都是用的遞推式來求組合數。。。結果是因為他在指數上,取個尤拉函式就不互質了。。。

#include"bits/stdc++.h"

using

namespace

std;

typedef

long

long ll;

const

int maxn=1e3+5;

const

int mod=1e9+7-1;//因為是在指數上降冪,用他的尤拉函式

ll com[maxn][maxn]=;

ll ksm(ll a,ll b,ll mod)

return res;

}ll fac[maxn]= ,invf[maxn]= ;

void initfac(int n)

}}ll c(int n,int m)

ll n,k;

ll a[maxn];

int main()

cout

<}

}

牛客OI測試賽1

求 f n 1 f n 1 f n 2 f n 為斐波拉契數列第 n 項 算一下前幾項不難發現答案為 1 n 下面用數學歸納法證明一下 n 2 時,猜想成立 假設 n k 時猜想成立,即 f k 1 f k 1 f k 2 1 k 當 n k 時,f k f k 2 f k 1 2 f k f k ...

牛客OI賽制測試賽1

a 斐波那契 設f i 表示斐波那契數論的第i項 f 1 1,f 2 1,f i f i 1 f i 2 給定乙個n 求乙個整數n乙個整數,表示答案示例1 複製4複製 1對於的資料,對於的資料,對於的資料,對於的資料,思路 輸出一下找下規律 如下 include include include in...

牛客OI賽制測試賽2

題目描述 給出乙個二元組 a,b 求出無序二元組 a,b 使得 a a,b b 的組數 無序意思就是 a,b 和 b,a 算一組.輸入描述 第一行資料組數 t 1 t 10000 接下來t行,每行兩個正整數 a,b 1 a,b 10000 輸出描述 共t行,每行乙個結果 組合,求a和b的因子個數,乘...