表示式的值(NOIP2011 普及組第四題)

2022-07-27 05:39:11 字數 578 閱讀 8605

對於 1 位二進位制變數定義兩種運算:

運算的優先順序是:

1. 先計算括號內的,再計算括號外的。

2. 「×」運算優先於「⊕」運算,即計算表示式時,先計算×運算,再計算⊕運算。 

例如:計算表示式a⊕b × c 時,先計算b × c,其結果再與a 做⊕運算。 

現給定乙個未完成的表示式,例如_+(*),請你在橫線處填入數字0 或者1,請問 有多少種填法可以使得表示式的值為0。

共2 行。

第 1 行為乙個整數l( 0≤l≤100,000 ),表示給定的表示式中除去橫線外的運算子和括號的個數。

第 2 行為乙個字串包含l 個字元,其中只包含』(』、』)』、』+』、』*』這4 種字元,其中』 (』、』)』是左右括號,』+』、』*』分別表示前面定義的運算子「⊕」和「×」。這行字元按順序 給出了給定表示式中除去變數外的運算子和括號。

共1 行。包含乙個整數,即所有的方案數。注意:這個數可能會很大,請輸出方案數對10007 取模後的結果。

4  

+(*)

3
每個測試點1s。

NOIP2011 表示式求值

這道題一看就跟正常表示式求值差不多,我們需要一步一步儲存前一部分的得0和得1的方案數,然後再與後面的進行運算,求出下個狀態的方法總數,看到這裡,很多朋友肯定想到了動態規劃,然而如何儲存運算順序呢,那就要用到中綴表示式轉字尾表示式,再按照運算順序進行計算,下面是 include include inc...

NOIP2011普及組T4 表示式的值 模擬 棧

做法 一般求表示式值的問題都用棧來解決,而這一題棧中的每乙個元素要存兩個數,可以用pair來儲存,first表示一段中結果為0的情況數,second表示一段中結果為1的情況數。設定乙個函式f l,r 表示 l,r 這一段所得的結果情況數 返回值形式為上述的pair 不難想到處理方法 如果l r,返回...

NOIP2011普及組 瑞士輪

題目 洛谷p1309 codevs1132 vijos p1771 題目大意 要你模擬瑞士輪賽制,求出r輪後第q名選手的編號。解題思路 首先對所有選手按分數從大到小進行排序,然後模擬比賽。因為原本是排好序的,贏的加1分,輸的扣1分,所以贏的人和輸的人也是分別有序的。所以我們可以把每輪贏的人扔進乙個陣...