P2186 小Z的棧函式

2022-04-07 08:00:01 字數 2546 閱讀 3649

小z最近發現了乙個神奇的機器,這個機器的所有操作都是通過維護乙個棧來完成的,它支援如下11個操作:

num x:棧頂放入x。

pop:拋棄棧頂元素。

inv:將棧頂元素取出,然後放入它的相反數。

dup:再放入乙個和棧頂元素相同的數。

swp:交換棧頂的兩個元素。

add:取出棧頂的兩個元素,兩元素相加,所得結果放入棧內。

sub:取出棧頂的兩個元素,第二個元素減去第乙個元素,所得結果放入棧內。

mul:取出棧頂的兩個元素,兩元素相乘,所得結果放入棧內。

div:取出棧頂的兩個元素,第二個元素整除以第乙個元素,所得結果放入棧內。

mod:取出棧頂的兩個元素,第二個元素取模以第乙個元素,所得結果放入棧內。

end:結束這個程式。

然後,小z用上面的11種操作寫了乙個一元函式f(x)。x就是放入棧裡面第乙個初始元素。然後經過這個函式的一系列操作,當函式結束的時候,正常情況下,棧裡面會有唯一的乙個元素。剩下的這個元素就作為函式f(x)的返回值。

小z有n個詢問,詢問每個值x經過上述函式所對映出的f(x)是多少。但是這個由於機器太老了,跑起東西來太慢了,小z又是乙個急性子,所以請你們寫乙個程式,來幫助小z計算他查詢的f(x)。

輸入格式:

輸入若干行,僅包含上述11個操作,用來描述函式f(x)的操作,函式的結束保證以end結尾;

接下來乙個整數n;

下面n行每行乙個數字ai,代表棧裡面的初始元素。

輸入資料不保證合法!!!

輸出格式:

如果最後棧內不是乙個元素,輸出「error」;

還有,由於這台機器太破了,所以如果運算過程中有數字的絕對值大於1000000000機器也輸出「error」;

如果輸入資料不合法,導致中途退出,輸出「error」;

否則輸出對應的f(x)。

輸入樣例#1:

num 600000000

addend30

600000000

1

輸出樣例#1:

600000000

error

600000001

【提示】

仔細考慮不合法的情況,避免不必要的re和wa。

【資料規模】

函式操作步數<=2000

詢問數<=2000

思路:大模擬。

#include#include

#include

#include

#define maxn 100000

using

namespace

std;

string s[3000

];int

tot,n;

intnum[maxn],stack[maxn];

void gets(int

x) int

main()

stack[++top]=num[j];

}

else

if(s[j]=="

pop"

) top--;

}else

if(s[j]=="

inv"

) stack[top]=-stack[top];

}else

if(s[j]=="

dup"

) stack[++top]=stack[top-1

]; }

else

if(s[j]=="

swp"

) swap(stack[top],stack[top-1

]); }

else

if(s[j]=="

add"

) stack[top-1]=stack[top]+stack[top-1];top--;

}else

if(s[j]=="

sub"

) stack[top-1]=stack[top-1]-stack[top];top--;

}else

if(s[j]=="

mul"

) stack[top-1]=stack[top]*stack[top-1];top--;

}else

if(s[j]=="

div"

) stack[top-1]=stack[top]/stack[top-1];top--;

}

else

if(s[j]=="

mod"

) stack[top-1]=stack[top]%stack[top-1];top--;}}

if(flag) continue

;

if(top!=1)

else cout}}

50分**

數學 p2117 小z的矩陣

題目描述 p2117 小z的矩陣 題目給定我們乙個正方形.容易想到,正方形是對稱的.推敲一下 如果我們的矩陣是這樣的 閉眼瞎敲出來的.begin end 題目給定我們的計算公式為a i j a j i 的和。對於這個栗子.按照式子來的話我們這麼算 a 1 1 a 1 1 a 1 2 a 2 1 a ...

P4111 HEOI2015 小Z的房間

你的房子可以看做是乙個包含n m個格仔的格狀矩形,每個格仔是乙個房間或者是乙個柱子。在一開始的時候,相鄰的格仔之間都有牆隔著。你想要打通一些相鄰房間的牆,使得所有房間能夠互相到達。在此過程中,你不能把房子給打穿,或者打通柱子 以及柱子旁邊的牆 同時,你不希望在房子中有小偷的時候會很難抓,所以你希望任...

P4111 HEOI2015 小Z的房間

傳送門 轉換題意後就是問你生成樹的方案數 就是裸的矩陣樹定理 不會證明,只懂結論 對於乙個無向圖 g 定義g的度數矩陣 d g 是乙個 n n 的矩陣,並且滿足 當 i j 時,d i j 0,當 i j 時,d i j 等於 vi 的度數 定義g的鄰接矩陣 a g 是乙個 n n 的矩陣,並且滿足...