학사 나부랭이
백준 1494 - 다이나믹 프로그래밍, 이진 탐색 본문
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
cin.tie(0);
long long f, s, n2, inst, bef[2][50];
int n, high, low, piv;
bool chk;
cin >> f >> s >> n;
for (int i = 0; i < n; i++) bef[0][i] = -1; //인덱스, b[1][i]는 값
for (int i = 0; i < n; i++) {
chk = false;
cin >> inst;
high = i; low = 0;
while (1) { //인덱스를 찾아 이진탐색...이었는데 안 해줘도...
piv = (high + low) / 2;
if (bef[0][piv] == -1) break;
if (bef[0][piv] < inst) low = piv + 1;
else if (bef[0][piv] > inst) high = piv - 1;
else if (bef[0][piv] == inst) {
chk = true;
break;
}
if (low > high) break;
}
if (!chk) {
bef[1][i] = f;
n2 = s;
for (long j = 1; j <= inst; j++) { //0번째는 굳이 이러지 않고 바로 출력하면 되니까
swap(bef[1][i], n2);//값2를 저장
n2 = abs(bef[1][i] - n2); //|res1 -= res2|
bef[0][i] = j; //생각해보니 굳이 활용할 방도가 없는 친구
}
}
cout << bef[1][i] << "\n";
sort(bef[0], bef[0] + i);
}
}
시간복잡도 n * (logn + inst)인데도 시간초과ㅠㅠㅠ
+) 바보야 n * (log n + inst + nlog n)이겠지! sort는 어디 또 빼먹고! 으이! 차라리 sort를 빼고 이진탐색 말고 그냥 리니어 탐색 하는게 훨씬 낫겠다! 이러니까 코딩 못 한다고 놀리지! 쫌! 굳이 베베 꼬지 마라고! 옛날부터 그래!
'塵箱 > 코드 삽질' 카테고리의 다른 글
백준 15829 - 모듈러 연산 (0) | 2021.04.20 |
---|---|
백준 10866 - 덱 (0) | 2021.04.19 |
Floyd algorithm (0) | 2021.04.16 |
백준 2164 - 큐 구현 (0) | 2021.04.16 |
Strassen function (0) | 2021.04.04 |
Comments