演算法訓練 C Calculations

2021-07-10 01:59:32 字數 1334 閱讀 6746

問題描述

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 問題描述 同在乙個高中,他卻不敢去找她,雖然在別人看來,那是再簡單不過的事。暗戀,是他唯一能做的事。他只能在每天課間操的時候,望望她的位置,看看她傾心的動作,就夠了。操場上的彩磚啊,你們的位置,就是他們能夠站立...