這道題目是Vijos裏來的。P1433。剛看到的時候嚇了一跳,仔細一看竟然發現這是數學問題。
題目描述
十八居士做的第4個夢是成爲了一名火炬手。恰巧奧組委還有最後一個火炬手的名額,於是各路高手羣雄逐鹿爭奪這個名額,clever的十八居士過五關斬六將,與另一高手會師決賽。裁判把他們帶到一個神祕密碼門前,只要誰先打開這個門,門裏的祥雲火炬就屬於誰。只見密碼門上寫着一個提示:“密碼:f(x)=sqrt((x+a)^2+b)+sqrt((x+c)^2+d)的最小值。”兩人面面相覷,怎麼做啊這?於是十八居士找到了會編程的你,請你幫他解決問題。
輸入格式
由鍵盤讀入a,b,c,d四個常數(b,d爲完全平方數,0<a,b,c,d≤10000)
輸出格式
f(x)的最小值(保留3位小數)。
樣例輸入
1 1 3 4
樣例輸出
3.606
時間限制/內存限制
1S / 128Mb
這道題目直接套用數學公式即可,代碼如下:
#include <stdio.h>
#include <math.h>
int main()
{
int a,b,c,d;
float x;
scanf("%d%d%d%d",&a,&b,&c,&d);
printf("%.3f",sqrt((a-c)*(a-c)+(sqrt(b)+sqrt(d))*(sqrt(b)+sqrt(d))));
return 0;
}