1010번 - 다리 놓기
#include
using namespace std;
unsigned long long brige[30][30];
long long DP(int w, int e)
{
if (brige[w][e] != -1)
return brige[w][e];
if (w == e)
brige[w][e] = 1;
return 1;
}
if (w + 1 == e)
brige[w][e] = e;
return e;
return brige[w][e] = DP(w, e - 1) + DP(w - 1, e - 1);
int main() {
int t;
int we, ea;
cin >> t;
while (t--)
cin >> we >> ea;
memset(brige, -1, 900);
DP(we, ea);
cout << brige[we][ea]<<"\n";
long long으로 했는데 예제에 13 29가 계속0이 나오네요 변수형 뭐로 해야하나요??
예제에서 1 5 의 출력도 엄청 큰 값이 나오므로 코드가 잘못된 것 같습니다.
댓글을 작성하려면 로그인해야 합니다.
aa2002dcks 1년 전
#include
#include
using namespace std;
unsigned long long brige[30][30];
long long DP(int w, int e)
{
if (brige[w][e] != -1)
return brige[w][e];
if (w == e)
{
brige[w][e] = 1;
return 1;
}
if (w + 1 == e)
{
brige[w][e] = e;
return e;
}
return brige[w][e] = DP(w, e - 1) + DP(w - 1, e - 1);
}
int main() {
int t;
int we, ea;
cin >> t;
while (t--)
{
cin >> we >> ea;
memset(brige, -1, 900);
DP(we, ea);
cout << brige[we][ea]<<"\n";
}
}
long long으로 했는데 예제에 13 29가 계속0이 나오네요 변수형 뭐로 해야하나요??