1. 程式人生 > 其它 >【簡便程式碼】1063 計算譜半徑 (20分)_10行程式碼AC

【簡便程式碼】1063 計算譜半徑 (20分)_10行程式碼AC

技術標籤:PAT乙級PATPAT乙級

立志用更少的程式碼做更高效的表達


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; }

在這裡插入圖片描述


PAT沖沖衝!ACM沖沖衝!

在這裡插入圖片描述