時間限制:2000ms
單點時限:1000ms
記憶體限制:256mb
一般來說,我們採用針孔相機模型,也就是認為它用到的是小孔成像原理。
在相機座標系下,一般來說,我們用到的單位長度,不是「公尺」這樣的國際單位,而是相鄰畫素的長度。而焦距在相機座標系中的大小,是在影象處理領域的乙個非常重要的物理量。
假設我們已經根據相機引數,得到鏡頭的物理焦距大小(focal length),和相機膠片的寬度(ccd width),以及**的橫向解析度(image width),則具體計算公式為:
focal length in pixels = (image width in pixels) * (focal length on earth) / (ccd width on earth)
比如說對於canon powershot s100, 帶入公式得
focal length in pixels = 1600 pixels * 5.4mm / 5.27mm = 1639.49 pixels
現在,請您寫一段通用的程式,來求解焦距在相機座標系中的大小。
多組測試資料。首先是乙個正整數t,表示測試資料的組數。
每組測試資料佔一行,分別為
鏡頭的物理焦距大小(focal length on earth)
相機膠片的寬度(ccd width on earth)
**的橫向解析度大小(image width in pixels),單位為px。
之間用乙個空格分隔。
每組資料輸出一行,格式為「case x: ypx」。 x為測試資料的編號,從1開始;y為焦距在相機座標系中的大小(focallength in pixels),保留小數點後2位有效數字,四捨五入取整。
對於小資料:focal length on earth和ccd width on earth單位都是公釐(mm)
對於大資料:長度單位還可能為公尺(m), 分公尺(dm), 厘公尺(cm), 公釐(mm), 微公尺(um),奈米(nm)
樣例輸入
2樣例輸出5.4mm 5.27mm 1600px
5400um 0.00527m 1600px
case 1: 1639.47pxcase 2: 1639.47px
**如下://source her
#include#include#include#include#includeusing namespace std;
int main()
switch(dw)
string::iterator pos=find(temp.begin(),temp.end(),'.');
if(pos==temp.end())
a+=(*temp.begin()-'0')*b;
} else
a+=(*temp.begin()-'0')*b;
b=0.1;
for(string::iterator pos2=pos;(++pos2)!=temp.end()-dw1.size();)
} a*=danwei;
p[i].push_back(a);
} double result1=(p[i][2]*p[i][0])/p[i][1];
int result2=result1*100;
if(((int)(result1*1000)%10)>=5)
++result2;
result1=(result2/100.0);
cout<<"case "<
2013程式設計之美全國挑戰賽 初賽第一場 題目2
時間限制 4000ms 記憶體限制 256mb 對於兩個長度相等的字串,我們定義其距離為對應位置不同的字元數量,同時我們認為距離越近的字串越相似。例如,0123 和 0000 的距離為 3,0123 和 0213 的距離則為 2,所以與 0000 相比,0213 和 0123 最相似。現在給定兩個字...
程式設計之美初賽第一場
時間限制 12000ms 單點時限 6000ms 記憶體限制 256mb a市是乙個高度規劃的城市。可是科技高階發達的地方,居民們也不能忘記運動和鍛鍊,因此城市規劃局在設計a市的時候也要考慮為居民們建造乙個活動中心。方便居住在a市的居民們能隨時開展運動。鍛鍊強健的身心。城市規劃局希望活動中心的位置滿...
程式設計之美初賽第一場 題目2 樹
時間限制 4000ms 單點時限 2000ms 記憶體限制 256mb 有乙個n個節點的樹,其中點1是根。初始點權值都是0。乙個節點的深度定義為其父節點的深度 1,特別的,根節點的深度定義為1。問完成所有操作後,各節點的權值是多少。為了減少巨大輸出帶來的開銷,假設完成所有操作後,各節點的權值是ans...