ZCMU—1863
1863: zbj的長跑
Time Limit:?1 Sec?? Memory Limit:?128 MB[ Submit][ Status][ Web Board]
Description
學(xué)校最近規(guī)定同學(xué)們每天必須參加鍛煉,學(xué)校的分布為一張圖,每兩條大路的交點(diǎn)處都有一個(gè)打卡器,也就是說在n*m的圖中,總共有n*m個(gè)打卡器,zbj不喜歡鍛煉,所以他想提前準(zhǔn)備一張路線圖,讓他跑的路程最短,那么問題來了,他現(xiàn)在想知道,他最少需要跑多少路呢?
zbj每次從(1,1)的寢室出發(fā),顯然他是要跑回來的...因?yàn)橐貙嬍宜X啊!
3*3的地圖如下,X處即為打卡點(diǎn),zbj可以選擇在相鄰的兩個(gè)點(diǎn)之間跑,路程為1km,他也可以選擇穿過教學(xué)樓,抄近路,也就是從從(1,1)直接到達(dá)(2,2)
X X X
X X X
X X X
Input
多組輸入數(shù)據(jù),每組數(shù)據(jù)輸入兩個(gè)正整數(shù)n,m(1<=n,m<=1000)
Output
每組數(shù)據(jù)輸出一個(gè)小數(shù),表示zbj最少需要跑的路程,保留兩位小數(shù)
Sample Input
2 2 3 5Sample Output
4.00 15.41【分析】
數(shù)學(xué)規(guī)律題了。。當(dāng)n,m不全為奇數(shù)的時(shí)候,最短路徑就是n*m; 當(dāng)n,m全為奇數(shù)的時(shí)候,必然要走一條斜線,就多走了0.41(即根號(hào)2),最短路徑即為:n*m+0.41.?
【代碼】 #include <cstdio> int main() {int total;int m,n;int i;while (~scanf("%d%d",&m,&n)){if((m*n)%2 == 0)printf("%d.00\n",m*n);elseprintf("%d.41\n",m*n);}return 0; }
總結(jié)
- 上一篇: matlab自动运行,自动运行matla
- 下一篇: 关于王者荣耀技术背景的文章