樣例輸入:
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 發現除錯不了,嚇了我一大跳。做到...