【简便代码】1063 计算谱半径 (20分)_10行代码AC
生活随笔
收集整理的這篇文章主要介紹了
【简便代码】1063 计算谱半径 (20分)_10行代码AC
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
立志用更少的代碼做更高效的表達(dá)
Pat乙級最優(yōu)化代碼+題解+分析匯總——>傳送門
在數(shù)學(xué)中,矩陣的“譜半徑”是指其特征值的模集合的上確界。換言之,對于給定的 n 個復(fù)數(shù)空間的特征值{a1+b1i,…,an+bni},它們的模為實(shí)部與虛部的平方和的開方,而“譜半徑”就是最大模。
現(xiàn)在給定一些復(fù)數(shù)空間的特征值,請你計(jì)算并輸出這些特征值的譜半徑。
輸入格式:
輸入第一行給出正整數(shù) N(≤ 10 000)是輸入的特征值的個數(shù)。隨后 N 行,每行給出 1 個特征值的實(shí)部和虛部,其間以空格分隔。注意:題目保證實(shí)部和虛部均為絕對值不超過 1000 的整數(shù)。
輸出格式:
在一行中輸出譜半徑,四舍五入保留小數(shù)點(diǎn)后 2 位。
輸入樣例:
5
0 1
2 0
-1 0
3 3
0 -3
輸出樣例:
4.24
樣例解釋
對于題給樣例, 最大的模顯然是第四組數(shù)據(jù), 為3倍根號2,化成小數(shù)為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沖沖沖!
總結(jié)
以上是生活随笔為你收集整理的【简便代码】1063 计算谱半径 (20分)_10行代码AC的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【简洁代码】1061 判断题 (15分)
- 下一篇: 【简便代码】1064 朋友数 (20分)