2017 08 06 NOIP提高組 模擬賽B組

2021-08-05 19:03:37 字數 685 閱讀 3302

t1:暴力dg(反著列舉),再加乙個小小的剪枝:先維護乙個字首和,每次dg時判斷一下若當前的重量加上剩下的所有重量還小於等於以求出的最大重量,那麼就不往下搜了。

t2:分層spfa。

總結:在做分層spfa時,dis,bz,d這三個陣列的形式一定要一模一樣,否則會出現錯誤或超時。

t3:設n>=m,那麼最優解一定是先走長度為n這條邊,再走長度為m的這條邊。

長度為n的這條邊上的點的權值一定為1,這個很好求。關鍵是怎樣求長度為m的這條邊的答案。

長度為m的這條邊的答案就是sum(f[n+1][i])(1<=i<=m+1),這就相當於從(1,1)走到(n+2,m+1)的方案數-1,而從(1,1)走到(n+2,m+1)的方案數為c(m,n+m+1)(一共要橫著走m步,豎著走n+1步),結合上長度為n的這條邊的答案,那麼最終答案就是n+c(m,n+m+1),那麼怎樣求c(m,n+m+1)呢?

因為答案很大,我們又不能邊除邊模,所以我們考慮逆元思想。

因為1000000007是乙個質數,所以根據費馬小定理,就有(a^(p-1))%p=1

即(a^(p-2))%p=(1/a)%p

所以我們如果要求乙個數除以a的商模p的結果,也就是求那個數乘a^(p-2)模p的結果,這個我們可以用快速冪解決。

總結:1、要記住逆元的求法。

2、組合數有乙個公式:c(m-1,n)+c(m,n)=c(m+1,n+1)

NOIP提高組 矩陣

在麥克雷的面前出現了乙個有n m個格仔的矩陣,每個格仔用 或 表示,表示這個格仔可以放東西,則表示這個格仔不能放東西。現在他拿著一條1 2大小的木棒,好奇的他想知道對於一些子矩陣,有多少種放木棒的方案。因為棍子是1 2的,所以很容易就能發現,兩個被分割的塊,除了跨越兩個塊擺放木棍的方案數會對答案有影...

NOIP提高組2005 過河

過河 river 問題描述 在河上有一座獨木橋,乙隻青蛙想沿著獨木橋從河的一側跳到另一側。在橋上有一些石子,青蛙很討厭踩在這些石子上。由於橋的長度和青蛙一次跳過的距離都是正整數,我們可以把獨木橋上青蛙可能到達的點看成數軸上的一串整點 0,1,l 其中l是橋的長度 座標為0的點表示橋的起點,座標為l的...

NOIP提高組 20151029模擬

其實這套題目並不算太難,但是還是發揮不了100 水平。第一題直接線性篩法,求出質數,然後就可以判斷乙個數是否為質數了。這道題還可以用miller rabin去求,後者的速度較快,如果資料再大些,就要使用後者了。第二題,比賽時發現了,當n 7時,答案會每四個一迴圈,但是就沒有繼續往下想,其實想下去會想...