https://www.acmicpc.net/problem/3943
3943번: 헤일스톤 수열
문제 헤일스톤 수열은 다음과 같이 정의 한다. n이 짝수라면, 2로 나눈다. n이 홀수라면, 3을 곱한 뒤 1을 더한다. 헤일스톤 추측은 임의의 양의 정수 n으로 수열을 시작한다면, 항상 4, 2, 1, 4, 2, 1,..
www.acmicpc.net
파일 합치기 풀다가 시간 딸림.
근데 이 문제도 오래걸림
앞으로 iostream 걸러야겠다.
무조건 cstdio쓴다. cin.tie(NULL), ios_base::sync어쩌구 쓰고 푸는데 안되서
혹시나하고 scanf printf쓰니까 바로 맞는다
더보기
#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
#include <vector>
using namespace std;
vector<int> dp;
unsigned long long r(unsigned long long n, unsigned long long max) {
if (n == 1) return max;
if (n < 10000000) {
if (dp[n] != -1) return max > dp[n] ? max : dp[n];
}
if (n % 2 == 0) {
unsigned long long res = r(n / 2, max);
return max > res ? max : res;
}
else {
unsigned long long res = r(n * 3 + 1, max > (n * 3 + 1) ? max : (n * 3 + 1));
return max > res ? max : res;
}
}
int main()
{
int tc;
scanf("%d", &tc);
dp.assign(10000001, -1);
for (int t = 1; t <= tc; t++) {
int n;
scanf("%d", &n);
if (dp[n] != -1) {
printf("%d\n", dp[n]);
continue;
}
dp[n] = r(n, n);
printf("%d\n", dp[n]);
}
return 0;
}
'Algorithm > Algorithm 문제 풀이' 카테고리의 다른 글
[BAE/<JOON> 문제풀이] 9252. LCS2 (DP.042) (0) | 2020.05.16 |
---|---|
[BAE/<JOON>] 11066. 파일 합치기 (DP.041) (0) | 2020.05.14 |
[BAE/<JOON> 문제풀이] 1915. 가장 큰 정사각형 (DP.039) (0) | 2020.05.12 |
[BAE/<JOON> 문제풀이] 1965. 상자넣기 (DP.038) (0) | 2020.05.12 |
[BAE/<JOON> 문제풀이] 6359. 만취한 상범 (DP.037) (0) | 2020.05.12 |