51Nod - 알고리즘 말 라 송 13 - C - 크기
3353 단어 수열
지금 B 수열 의 A 에 게 물 어보 세 요.N 항 과 제 (A N) + 1 항의 관계
T 조 데이터 A0, a, b, N < = 1e15 T < = 100 Input 1 개 수 T, 데이터 그룹 수 줄 당 4 개 수 A0, a, b, N Output 한 글자 로 크기 관 계 를 표시 합 니 다.입력 예제 1 0 55 1 출력 예제 =
이 문 제 는 두 가지 어 려 운 점 이 존재 한다. 첫 번 째 는 B 서열 을 어떻게 구 하 느 냐 하 는 것 이다. 두 번 째 는 A 서열 이다. 이 두 가지 서열 은 모두 너무 방대 하 다. 먼저 B 서열 을 말 하면 이것 은 상대 적 으로 간단 하 다. 왜냐하면 B 서열 은 고정 적 인 것 이기 때문이다. B [0] = - 1, 그 다음 에 고정된 서열 이다. 뚜렷 하 다. 앞의 네 개 는 특수 하고 뒤의 네 개 는 모두 네 개의 크기 규칙 에 부합 되 기 때문이다.여기 서 우 리 는 A 서열 을 다시 말 해 야 한다. 비록 A 서열 에 고정된 값 이 없 지만 A 서열 은 통식 이 존재 하고 뒤에 등비 관계 가 존재 하 며 앞 에 똑 같이 특수 한 상황 이 존재 하기 때문에 특별히 고려 해 야 한다. 계산 에서 나머지 를 취하 면 된다.
코드 C 는 다음 과 같 습 니 다:
#include <stdio.h>
typedef long long ll;
ll a, b, N;
ll A_0, A_N, A;
ll setA(ll N)
{
A = A_0 % 4;
for (int i = 1; i <= N; i++)
{
A = (A * a + b) % 4;
}
return A;
}
int main(int argc, const char * argv[])
{
int T;
scanf("%d", &T);
while (T--)
{
scanf("%lld %lld %lld %lld", &A_0, &a, &b, &N);
int flag = 1;
ll lim = 4, A = A_0;
flag = ((b <= lim) && (A <= lim));
for (int i = 1; i <= N && flag; i++, A = A * a + b)
{
flag = (A < (lim - b) * 1.0 / a);
}
if (flag)
{
puts(A == 0 || A == 1 ? "=" : A == 2 ? "<" : ">");
continue;
}
A = setA(N > 3 ? N % 4 + 4 : N);
puts(A == 1 ? "=" : A == 3 ? ">" : "<");
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[BOJ][Python]수열 #2599📌풀이 내가 쓴 풀이(실패) 처음에 주어진 구간에서의 sum을 활용하여 코드를 작성하였으나, 시간초과로 문제가 해결되지 않았습니다. 내가 쓴 풀이(성공) for문에서 값을 비교할 때, 앞의 값을 빼주고, 뒤의 값을 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.