【簡便程式碼】1063 計算譜半徑 (20分)_10行程式碼AC
阿新 • • 發佈:2021-02-03
立志用更少的程式碼做更高效的表達
Pat乙級最優化程式碼+題解+分析彙總——>傳送門
在數學中,矩陣的“譜半徑”是指其特徵值的模集合的上確界。換言之,對於給定的 n 個複數空間的特徵值{a1+b1i,…,an+bni},它們的模為實部與虛部的平方和的開方,而“譜半徑”就是最大模。
現在給定一些複數空間的特徵值,請你計算並輸出這些特徵值的譜半徑。
輸入格式:
輸入第一行給出正整數 N(≤ 10 000)是輸入的特徵值的個數。隨後 N 行,每行給出 1 個特徵值的實部和虛部,其間以空格分隔。注意:題目保證實部和虛部均為絕對值不超過 1000 的整數。
輸出格式:
在一行中輸出譜半徑,四捨五入保留小數點後 2 位。
輸入樣例:
5
0 1
2 0
-1 0
3 3
0 -3
輸出樣例:
4.24
樣例解釋
對於題給樣例, 最大的模顯然是第四組資料, 為3倍根號2,化成小數為4.24(PS:最初算成2倍根號3,思考了好久。汗-_-||)
程式碼
#include<bits/stdc++.h>
using namespace std;
int main() {
double sum = 0;
int n; cin >> n; while(n--) {
double a, b; cin >> a >> b;
sum = max(sum, sqrt(a*a+b*b));
}
printf("%.2lf\n", sum);
return 0;
}