洛谷 5160 WD與迴圈

2021-10-02 03:17:18 字數 1531 閱讀 8232

題目描述

這天,wd蒟蒻為了解決乙個小問題寫了個很長很長的for迴圈:

int cnt = 0;

for (int a_1 = 0; a_1 <= m; a_1++) }}

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

cx過來看了一眼,說:**wd你個笨蛋,這道題不是sb題嗎?**wd一臉懵逼,只好請你來教教他啦…

輸入格式

第一行乙個數t,表示資料組數。接下來每行兩個數n,m,分別表示迴圈重數和每層迴圈的上界。

輸出格式

共tt行,每行乙個數表示答案。

輸入輸出樣例

輸入 #1

22 9

10 14

輸出 #1

551961256

說明/提示

n,m≤1018, 1≤t≤100,000

解釋:很明顯模型為

a 1+

a2,.

..an

≤m

a_1+a_2,...a_n \le m

a1​+a2

​,..

.an​

≤m的個數則a1+

a2..

.,an

=m

a_1+a_2...,a_n=m

a1​+a2

​...

,an​

=m為cn+

m−1n

−1

c_^cn

+m−1

n−1​

a ns

=∑i=

0mcn

−1+i

n−

1ans=\sum\limits_^mc_^

ans=i=

0∑m​

cn−1

+in−

1​又∑i=

0mcn

−1+i

n−1=

cn+m

m\sum\limits_^mc_^=c_^m

i=0∑m​

cn−1

+in−

1​=c

n+mm

​直接上lucas

#includeusing namespace std;

const int mod=19491001;

long long fac[mod+1]={};

void gf()

return fac[n]*(pw(fac[k]*fac[n-k]%mod,mod-2))%mod;

}long long lucas(long long n,long long m)

int main()

return 0;

}

洛谷題解 P5159 WD與矩陣

傳送門 如何用一句話描述 給定n和m,求有多少種大小為n m的01矩陣滿足每行每列異或值都是0,答案對998244353取模 yy一下 我們考慮乙個 n 1 m 1 的矩陣 很顯然,如果我們隨便填,會發生什麼呢?會有乙個超級大的答案出來 可是這跟我們的問題有什麼關係?毫無關係 我們找個特例,比如n ...

分支與迴圈 洛谷練習

p1423 小玉在游泳 題目描述 小玉開心的在游泳,可是她很快難過的發現,自己的力氣不夠,游泳好累哦。已知小玉第一步能遊2公尺,可是隨著越來越累,力氣越來越小,她接下來的每一步都只能游出上一步距離的98 現在小玉想知道,如果要游到距離x公尺的地方,她需要遊多少步呢。請你程式設計解決這個問題。輸入輸出...

洛谷試煉場 洛谷新手村 迴圈!迴圈!迴圈!

1.p1008 三連擊 題目鏈結 include using namespace std int main 2.p1035 級數求和 題目鏈結 include using namespace std int main cout 1 0 3.p1423小玉在游泳 題目鏈結 include using ...