NOIP2016提高A組模擬9 28 求導

2021-07-23 07:35:39 字數 1706 閱讀 2258

題解

可以先把多項式拆成很多個單項式,然後分別對於每⼀項求導之後輸出。

細節較多,要注意係數為0,係數前正負號,以及指數為0或1的情況。

注意ansistring

**

var

l:longint;

s:ansistring;

procedure

main;

var i,p,a,b,j,pp:longint;

ss:ansistring;

begin

l:=length(s);

i:=1; j:=0;

while ido

begin

ss:=''; pp:=i;

while (s[i]<>'+') and (s[i]<>'-') and (i<=l) do

begin

ss:=ss+s[i];

inc(i);

end;

a:=0; b:=0;

p:=0; p:=pos('x',ss);

if p>0

then val(copy(ss,1,p-1),a)

else

begin inc(i); continue; end;

if p=1

then a:=1;

if s[pp-1]='-'

then a:=-a;

p:=0; p:=pos('^',ss);

if p>0

then val(copy(ss,p+1,length(ss)-p),b)

else b:=1;

if j=0

then

begin

if b=1

then

write(a*b) else

if b-1

<>1

then

write(a*b,'x^',b-1)

else

write(a*b,'x');

endelse

begin

if a*b>0

then

write('+');

if abs(a*b)<>1

then

write(a*b);

if b-1

<>0

then

write('x');

if b-1>1

then

write('^',b-1);

end;

inc(j); inc(i);

end;

if j=0

then

write(j);

end;

begin

assign(input,'equation.in');

assign(output,'equation.out');

reset(input);

rewrite(output);

readln(s);

main;

close(input);

close(output);

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 單峰

問1 n,n個數的全排列中有多少個滿足單峰序列的性質,並把答案mod 1e9 7 這題還是很簡單的,一開始打了乙個50分的做法,然後發現答案就是2n 1,然後沒有發現輸入也會爆,於是就得了50分 我們容易發現峰一定是最大的那個數,我們把峰放到每乙個位置上,然後在往峰的左邊隨便填一些數,每種填數的方法...