題解
可以先把多項式拆成很多個單項式,然後分別對於每⼀項求導之後輸出。
細節較多,要注意係數為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分 我們容易發現峰一定是最大的那個數,我們把峰放到每乙個位置上,然後在往峰的左邊隨便填一些數,每種填數的方法...