日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

背着书包去上学~

發布時間:2023/12/20 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 背着书包去上学~ 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

小D從家到學校的道路結構是這樣的:由n條東西走向和m條南北走向的道路構成了一個n*m的網格,每條道路都是單向通行的(只能從北向南,從西向東走)
已知小D的家在網格的左上角,學校在網格的右下角。
問小D從他的家到學校一共有多少種不同的上學路線。

輸入
兩個正整數n和m,意義如題目所述。
輸出
小D上學路線數量,結果對1000000007取余。
樣例輸入
3 4
樣例輸出
10
100%的數據,n,m≤1000

這個題,看到的第一思路就是組合數。
因為從頭到學校需要n+m-2步 ,將向右走看成一種方案有m-1,向下走看成一種方案n-1,那么C(n+m-2,m-1)就是答案了。聽起來很簡單,不過還要取余。。。很明顯階乘肯定爆掉了,每次對階乘取余不符合除法取余規則。。菜雞的我還沒學會除法取余(逃)所以這種方法寫完交上去WA了幾次就放棄了。經大佬啟發 ,最后的方案數不就等于上兩個格方案數相加嘛,這樣不斷遞推,就可以得到最后的方案數,算是能a掉了吧~

先將邊路變成1,因為到邊路的方案只有一種所以都設為1,再從[2][2]開始遍歷
將能移動到它的上兩個方格方案數相加,一直到終點,可得答案。

#include<cstdio>int vis[2000][2000],ans;int main() {int n,m;scanf("%d %d",&n,&m);for(int i=1;i<=n;i++)vis[i][1]=1;for(int i=1;i<=m;i++)vis[1][i]=1;for(int i=2;i<=n;i++)for(int j=2;j<=m;j++)vis[i][j]=(vis[i-1][j]+vis[i][j-1])%1000000007;ans=(vis[n][m])%1000000007;printf("%d",ans);return 0; }

總結

以上是生活随笔為你收集整理的背着书包去上学~的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。