給n個點,每個點有個速度,求所有點的最大距離最小的時刻。
一開始讀錯題了! 以為求最小距離最小的時刻。 ==! wrong了8次!!!
還是三分,每次判斷所有點的最遠距離。
#include #include #include #include #include #include #define inf 0x7fffffff
using namespace std;
int n;
struct point
p[400];
double dis(double t,int a,int b)
double check(double x)
printf("case #%d: %.2lf %.2lf\n",cas++,r,sqrt(d));
}return 0;
}d - solve this equation hdu 2199
給你個函式,求零點,裸的二分。
#include #include #include #include #include #include #define inf 0x7fffffff
using namespace std;
double y;
double f(double x)
int main()
double l=0,r=100,mid;
for(int i=0; i<100; i++)
printf("%.4lf\n",l);
}return 0;
}
e - umbasketella poj 3737
給你圓錐的表面積,求最大體積。
也是三分,用 g++交wrong了三次,換c++就a了
#include #include #include #include #include #include #define inf 0x7fffffff
using namespace std;
double s,l,h;
const double pi=acos(-1.0);
long double f(long double r)
int main()
printf("case #%d: %.0lf\n",++c,f(m1));
}return 0;
}
g - line belt hdu 3400
給你兩個線段ab和cd,在ab上的速度為p,cd上的速度為q,其他部分為r,求a到d的最小時間。
三分套三分。第一次三分列舉ab上的點,然後第二次列舉cd上的點,然後算出總時間作為比較值。
#include #include #include #include #include #include #define inf 0x7fffffff
using namespace std;
struct point
a,b,c,d;
double v1,v2,v0;
double ax,ay,bx,by,cx,cy,dx,dy;
double dis(point a,point b)
double f(point x)
return t1;
}int main()
printf("%.2lf\n",t2);
}return 0;
}
h - the frog's games hdu 4004經典的最大值最小化問題。
二分列舉最小值,判斷是否可行。
#include #include #include #include #include #include #define inf 0x7fffffff
using namespace std;
int a[1000004];
int main()
printf("%d\n",l);
}return 0;
}
二分 三分模板
適用於 單調函式 單調增或單調減 基本思想 給定9個數,由小到大排列,從這9個數中找出某乙個確切的數 比如4 偽 int binary sreach int a,int left,int right,int x if a left x return left return 1 給你三個陣列a,b,c...
二分和三分
三分二分,乙個簡單而神奇的演算法,可以簡化時間複雜度,但是用二分有乙個條件,就是我們進行二分的序列必須有單調性。原理 aa中找乙個數x xx 保證x xx一定存在 我們可以用樸素演算法,直接從頭到尾找一遍,時間複雜度o n o n o n 如果當序列a aa的長度十分大時,這種方法就不好用了。二分橫...
二分和三分
二分 二分,即為折半查詢,它是一種效率較高的查詢方法。但是,折半查詢要求線性表必須採用順序儲存結構,而且表中元素按關鍵字有序排列。也就是說,二分的條件為必須滿足數列或某一邏輯的順序性,單調 只有這樣才能進行二分。查詢方法 首先,假設表中元素是按公升序排列,將表中間位置記錄的關鍵字與查詢關鍵字比較,如...