본문 바로가기

알고리즘/Divide and Conquer-이분탐색8

crossed ladder 더블릿 1234567891011121314151617181920212223242526272829303132#include #include #include using namespace std; double root(double m, double x) { return sqrt(pow(m, 2) - pow(x, 2));} int main() { double m, n, h; scanf("%lf %lf %lf", &m, &n, &h); double left = 0, right = min(m, n),rst=0,mid; while (left 2019. 2. 13.
factorial vs pow 더블릿 (PS) 123456789101112131415161718192021222324252627282930313233343536373839#include #include using namespace std; double fac[10000000] = { 0 }; void solve(int num) { int left = 0, right = 10000000,rst=0; while (left = fac[mid]) { left = mid + 1; } else{ rst = mid; right = mid - 1; } } printf("%d\n", rst);} int main() { for (int i = 1; i 2019. 2. 13.
이진검색 더블릿 (PS) 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950#include int idx[10002] = { 0 };int n, k; int search(int right) { int left = 0,tmp=0; while (left n) { right = mid - 1; tmp++; } else if (mid 2019. 2. 13.
공격적인 소 더블릿 (Aggressive Cow) 1234567891011121314151617181920212223242526272829303132333435363738#include #include #define INF 1e9 using namespace std; int arr[100001] = { 0 }; int main() { int n, c; scanf("%d %d", &n, &c); for (int i = 0; i 2019. 2. 12.
6236 용돈관리 (PS) 12345678910111213141516171819202122232425262728293031323334353637#include #define INF 1e9 int arr[100001] = { 0 }; int main() { int n, m; scanf("%d %d", &n, &m); int low = 0, high = INF / m; for (int i = 0; i 2019. 2. 12.
2343 기타레슨 (PS) 123456789101112131415161718192021222324252627282930313233343536373839404142#include #define INF 1e9 int arr[100001] = { 0 }; int main() { int n, m; scanf("%d %d", &n, &m); int low = 0,high; high = INF / m; for (int i = 0; i low) low = arr[i]; } int tmp=1,mid; while (low 2019. 2. 12.
2512 예산 (PS) 123456789101112131415161718192021222324252627282930313233343536373839404142#include int arr[10000] = { 0 }; int main() { int n,lim,st=0,max=0; scanf("%d", &n); getchar(); for (int i = 0; i max) max = arr[i]; } scanf("%d", &lim); getchar(); if (lim >= st) { printf("%d", max); return 0; } int low = 0, high = 1000000000; while (low + 1 lim) high = mid; else low = mid; } printf("%d", low);}Colored b.. 2019. 2. 11.
2805 나무 자르기 (PS) 1234567891011121314151617181920212223242526272829303132333435363738#include long long arr[1000001] = { 0 }; int main() { int n, m; scanf("%d %d", &n, &m); getchar(); long long max = 0; for (int i = 1; i 2019. 2. 11.