NOIP2016提高A組模擬9 2 單峰

2021-07-22 08:59:12 字數 1055 閱讀 2635

問1-n,n個數的全排列中有多少個滿足單峰序列的性質,並把答案mod 1e9+7

這題還是很簡單的,一開始打了乙個50分的做法,然後發現答案就是2n

−1,然後沒有發現輸入也會爆,於是就得了50分

我們容易發現峰一定是最大的那個數,我們把峰放到每乙個位置上,然後在往峰的左邊隨便填一些數,每種填數的方法一定有且只有一種對應的合法方法,那麼一共就有2n

−1種做法(用快速冪,注意範圍)

const md=1000000007;

var i,j,k,l:longint;

ans,x,p,n:int64;

function

quickmi

(x,y:int64):int64;

var i:int64;

s:int64;

begin

i:=1;

s:=x;

quickmi:=1;

while i<=y do

begin

if y and i<>0

then quickmi:=(quickmi*s) mod md;

i:=i*2;

s:=(s*s) mod md;

end;

exit(quickmi);

end;

begin

readln(n);

n:=n-1;

ans:=1;

x:=quickmi(2,n);

writeln(x);

end.

NOIP2016提高組模擬 積木

比賽的時候用了個神奇的小暴力,本來打算拿40分,沒想到暴力出奇蹟,隨機資料下表現優良,居然碾過去了。暴力方法不講,只貼 僅供對拍。正解顯然要用狀態壓縮 看資料範圍 設fs i,0 1 2 s表示當前已選擇的積木集合,i表示在最上方的積木編號,0 1 2表示最上方的積木哪面朝上。轉移方程容易推導。暴力...

計數 NOIP2016提高A組模擬7 15

樣例輸入 2 10 樣例輸出 90資料範圍 剖解題目 題目說的很明了了。思路 求方案數,一般會設計道dp,規律之類的。解法 數字dp,設f i j 表示當前到了第i位,這一位的數字是j的方案數。自然有 f i j f i 1 l f i j 0 l k 且 l 0 and j 0 看到這位數,很明顯...

NOIP2016提高A組模擬9 2 積木

給你一些方塊,給出每個方塊的長寬高,可以以任意一面為底面,用任意的順序選擇任意一些方塊,下面的方塊一定要完全包含上面的方塊 下面方塊的長,寬分別小於上面方塊的長寬 求最高的搭出積木的高度 看到這個資料範圍,就想到狀壓dp,狀態也是很好設的,我們設f s,i,j,k 表示當前方塊的選取狀態為s,當前在...