計數 NOIP2016提高A組模擬7 15

2021-07-15 01:25:40 字數 2591 閱讀 4673

樣例輸入:

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).

看到這位數,很明顯的高精度了。

然而單純的高精加速度會較慢,我們驚訝發現其實只有f[i][0]與f[i][!0]是不同的,所以我們可以將所有的f[i][!0]都加在一起,也就是弄乙個高精乘。

然而,高精度實在是難搞,調了半天終於調對了,真是蛋疼!(ノಠ益ಠ)ノ彡┻━┻

**:

type

arr=array[0..1,0..1,0..2000]of longint;

const mo=100000000;

var f:arr;

ans:array[0..1000]of longint;

n,k,i,j,x,y,z,p,q:longint;

procedure

add(x,y,xx,yy:longint);

var i,t:longint;

begin

if f[x,xx,0]>f[y,yy,0] then i:=f[x,xx,0]

else i:=f[y,yy,0];

t:=0;

for i:=1

to i do

begin

if i>f[x,xx,0] then f[x,xx,i]:=0;

if i>f[y,yy,0] then f[y,yy,i]:=0;

f[x,xx,i]:=f[x,xx,i]+f[y,yy,i]+t;

t:=f[x,xx,i] div mo;

f[x,xx,i]:=f[x,xx,i] mod mo;

end;

if t>0

then

begin

inc(i);

f[x,xx,i]:=t;

end;

f[x,xx,0]:=i;

end;

procedure

quick

(x,o,k:longint);

var i,t:longint;

begin

i:=f[x,o,0];

t:=0;

for i:=1

to i do

begin

f[x,o,i]:=f[x,o,i]*k+t;

t:=f[x,o,i] div mo;

f[x,o,i]:=f[x,o,i] mod mo;

end;

while t<>0

dobegin

inc(i);

f[x,o,i]:=f[x,o,i]+t;

t:=f[x,o,i] div mo;

end;

f[x,o,0]:=i;

end;

procedure

printf

(x:longint);

var i:longint;

s:string;

begin

write(f[x,1,f[x,1,0]]);

for i:=f[x,1,0]-1

downto1do

begin

f[x,1,i]:=f[x,1,i]+mo;

str(f[x,1,i],s);

delete(s,1,1);

write(s);

end;

end;

begin

readln(n,k);

if k=1

then writeln(0)

else

if n=1

then writeln(k-1)

else

begin

f[0,0,0]:=1;

f[0,0,1]:=1;

f[0,1,0]:=1;

f[0,1,1]:=1;

p:=1; q:=0;

for i:=2

to n do

begin

quick(q,1,k-1);

f[p,0]:=f[q,1];

f[p,1]:=f[q,1];

add(p,q,1,0);

q:=p;

p:=p xor

1; end;

quick(q,1,k-1);

printf(q);

end;

end.

NOIP2016提高組總結

這次noip可以用幾個字來形容 浪的飛起,頹的不行。中午從校門出發,在車上睡了半個車程。4 00左右,霧比較大,遠處的小蠻腰若隱若現。你好,廣州。5 00,symbol叫我們去看考場,結果被拒在門外,然後大家都散了。我與其它幾位小夥伴匆匆吃完飯,回到酒店,該看電視看電視,中途開會,提醒我們一些注意事...

NOIP2016 提高組 總結

這是倒數第三次noip了。今年我初三。去年的傷痕還未褪去,我在比賽前意識到,當務之急其實是鞏固基礎而非深究一些難題。於是賽前兩周,我認真讀了白書的前面部分,尤其重點練習了dp。dp作為基礎演算法之一,其靈活性極高,所以可以出得很難,也是各種比賽的寵兒。練好dp是尤為重要的。賽前好幾場模擬賽都做得很爛...

NOIP2016提高組總結

來到了廣州,不錯啊,旁邊的飯店很多,可以好好的腐一下了。一群人走進了乙個小巷,住進了乙個七天酒店,發現房間裡面好小啊。吃完飯後,一直都在腐敗。通知開會的同學並沒有到我們的房間來,結果在結束開會的前幾分鐘我們才過去。早早的睡了 第一天,狀態不錯。早早的到了考場。開啟c 發現除錯不了,嚇了我一大跳。做到...