問題描述
c*++語言和c++語言非常相似,然而c*++的程式有時會出現意想不到的結果。比如像這樣的算術表示式:
表示式=基本式 / 表示式+基本式 / 表示式-基本式
基本式=增量 / 係數*增量
增量=a++ / ++a
係數=0/1/2/……/1000
如「5*a++-3*++a+a++」是合法的c*++表示式。
計算這樣的表示式的值的方法:首先是每個基本式進行計算,然後按照正常的算術運算法則計算。如果乙個基本式包含「a++」,則先進行乘法運算再使變數a權值+1;如果乙個基本式包含「++a」,則先使變數a權值+1再進行乘法運算。
然而基本式可以按任意順序計算,這就是為什麼計算結果是完全無法預料的。
你的任務就是去找到最大的可能結果。
第一行,乙個整數n,表示變數a的初始值。
第二行,乙個合法的c*++表示式。
共一行,乙個整數ans,表示最大可能結果。
輸入格式
input 1:
15*a++-3*++a+a++
input 2:
3a+++++a
輸出格式
output 1:
11output 2:
8資料規模和約定
對於20%的資料,表示式長度<=20。
另有20%的資料,滿足n>=0。
對於100%的資料,-1000<=n<=1000,表示式長度<=10000。
注意表示式開頭可能有負號!
題解有參考網上
#include #include #define maxsize 10011
int n, ans, k, coe, len, outcome, c[maxsize];
char e[maxsize], s[maxsize];
void sort(int x)
else
} }}int calculate()
s[0] = '+';
len ++;
} for(i = 0; i < len; i += 3)else
i ++;
j = 0;
while('0' <= s[i] && s[i] <= '9')
if(s[i] == '*')else
coe *= j;
c[++k] = coe;
outcome += (n-(s[i] == 'a')) * coe; }
sort(k);
for(i = 1; i <= k; i ++)
return outcome;
}int main()
DL RBM訓練演算法
在學習hinton的stack autoencoder演算法 reducing the dimensionality of data with neural networks 之前需要了解什麼是rbm,現在就我學習的情況,查詢的資料 大部分來自部落格 簡單介紹一下rbm。當然,這裡面還有同組實驗的同...
演算法訓練 暗戀
演算法訓練 暗戀 時間限制 1.0s 記憶體限制 256.0mb 問題描述 同在乙個高中,他卻不敢去找她,雖然在別人看來,那是再簡單不過的事。暗戀,是他唯一能做的事。他只能在每天課間操的時候,望望她的位置,看看她傾心的動作,就夠了。操場上的彩磚啊,你們的位置,就是他們能夠站立的地方,他倆的關係就像磚...
演算法訓練 暗戀
演算法訓練 暗戀 時間限制 1.0s 記憶體限制 256.0mb 錦囊1 錦囊2 錦囊3 問題描述 同在乙個高中,他卻不敢去找她,雖然在別人看來,那是再簡單不過的事。暗戀,是他唯一能做的事。他只能在每天課間操的時候,望望她的位置,看看她傾心的動作,就夠了。操場上的彩磚啊,你們的位置,就是他們能夠站立...