sicily 1001. Alphacode dp
1260 단어 Alpha
0에 대한 처리에 주의해야 한다. 방정식을 잘못 열거하기 시작한다. WA는 여러 번
dp 방정식은 a[n] = a[n-1] + a[n-2]이고 입력한 문자열은 한 번에 X1X2X3... Xn...
Xn = 0 시, a[n] = a[n-2]
땡땡!0시,
만약에 X(n-1)와 X(n)로 구성된 수가 26보다 크면 a[n]=a[n-1].
만약 X(n-1)와 X(n)로 구성된 수<=26,
x(n-1)가 0이 아니면 a[n]=a[n-1]+a[n-2]
x(n-1)=0시, a[n]=a[n-1]
#include <iostream>
#include <string>
#define MAX 100000
using namespace std;
int main()
{
string num;
long long a[MAX];
int size;
int n;
while (cin >> num && num != "0")
{
size = num.length();
a[0] = 1;
a[1] = 1;
if (size == 1)
{
cout << "1" << endl;
continue;
}
//
n = (num[0]-'0')*10 + num[1]- '0';
if (n <= 26 && num[1] != '0')
a[1] = 2;
for (int i = 2; i < size; i++)
{
if (num[i] == '0')
a[i] = a[i-2];
else
{
a[i] = a[i-1];
n = (num[i-1]-'0')*10 + num[i]-'0';
if (n <= 26 && num[i-1] != '0')
a[i] += a[i-2];
}
}
cout << a[size-1] << endl;
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
1001. Alphacode (sicily)Alice and Bob need to send secret messages to each other and are discussing ways to encode their messages: Alice: "Let's...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.