題目:
題目本身沒什麼難度,只不過不同風格的程式寫出來不一樣,這裡我用了遞迴降解 + 異常:遞迴降解是求解算術運算的利器;當矩陣維數不匹配時,丟擲異常,然後遞迴棧自動回退到main中的catch,棧上的區域性變數也會自動析構,感覺這個風格有點pythonic呢
#include #include #include using namespace std;
typedef long long ll;
struct dimensionerror{};
struct result
result(ll r, ll c, ll s) : row(r), col(c), cal(s){}
result& operator *= (const result& other)
};int matrix[26][2];
string::size_type findmatch(const string& s, string::size_type left)
return left;
}result work(const string& s)
return res;
} //find left's matcher
result res;
string::size_type right = findmatch(s, left);
if(left != 0)
else res = work(s.substr(1, right - 1));
if(right + 1 != s.size()) res *= work(s.substr(right + 1));
return res;
}int main()
while(cin >> s)
if(i != s.size())
//figure out total multiplications
trycatch(dimensionerror e)
} return 0;
}
poj2246 資料結構棧
簡單的棧操作 對給定的輸入串進行出棧如棧操作 每一次出棧後進行計算 得到的結果再次如棧 一直進行到輸入串結束!include include include include include includeusing namespace std struct node int main memset ...
POJ 3070 Fibonacci(快速冪矩陣)
題目鏈結 不是很了解,線代的行列式和矩陣乘法,忘的差不多了。這個矩陣的n 1次方的左上角那個數就是菲薄那切數列的第n項。快速冪矩陣,和快速冪模差不多,把數相乘換成矩陣相乘了。渣 請無視,改天整理乙個模版版本。1 include 2 include 3 include 4 include 5 usin...
poj 2420 poj1379 模擬退火
具體模擬退火的原理可參考 模擬退火可用於一些 精度 要求不是很高的題目。比如取答案的0.1,或者沒有小數點 poj2420 題意 給定n個點,找到乙個點,使得n個點到這個點的距離和最小 模擬退火法 模擬退火的過程 1 確定生成點的範圍,初設為矩形,在這個範圍內生成num個點 num自定 2 確定最高...