白駿2193号:李親水
5694 ワード
リンク:https://www.acmicpc.net/problem/2193
ダイナミックプログラミング.まず始めましょう.
0と1のみからなる数をバイナリ数と呼ぶ.バイナリ数には、バイナリ数と呼ばれる特殊な性質を持つものがあります.初めて聞きましたね
1.このパラメータは0で始まりません.
2.この親水性では、1不連続が2回出現する.これは、11に部分文字列がないことを意味する.
n桁の数でこの親水性の個数を求めます.
前回の2579号:階段を上るの質問から近づいてきたのでしょうか
公比は3 a+bͨ2 a 3^{a+b}*2^{a}3 a+bͨ2 aである.わぁ^^
まず私が何をしたのか整理してください.まず1で始まる枝と0で始まる枝を計算した.それからこれを3つの位置に刺して、全部でいくつかあることを確認して、それを点火式にしようとしました.残りの人はそれぞれ1と2の状況を計算し、ナスを増やそうとした.無意味な行為ですが^^
最初は間違った接近があった.1-1とは限らないが、1-1-(0/1)が含まれているので、数字がおかしい...
ちゃんと勘定しなさい.何も言えない.状況をよく考えなさい.
点火式は簡単だ.
問題を読む
ダイナミックプログラミング.まず始めましょう.
0と1のみからなる数をバイナリ数と呼ぶ.バイナリ数には、バイナリ数と呼ばれる特殊な性質を持つものがあります.初めて聞きましたね
1.このパラメータは0で始まりません.
2.この親水性では、1不連続が2回出現する.これは、11に部分文字列がないことを意味する.
n桁の数でこの親水性の個数を求めます.
前回の2579号:階段を上るの質問から近づいてきたのでしょうか
公比は3 a+bͨ2 a 3^{a+b}*2^{a}3 a+bͨ2 aである.わぁ^^
コード#コード#
#include <iostream>
using namespace std;
int main() {
int N;
cin >> N;
long long arr[91];
arr[1] = 1;
arr[2] = 1;
for (int i = 3; i <= N; i++) {
arr[i] = arr[i - 1] + arr[i - 2];
}
cout << arr[N];
return 0;
}
ぶんせき
まず私が何をしたのか整理してください.まず1で始まる枝と0で始まる枝を計算した.それからこれを3つの位置に刺して、全部でいくつかあることを確認して、それを点火式にしようとしました.残りの人はそれぞれ1と2の状況を計算し、ナスを増やそうとした.無意味な行為ですが^^
最初は間違った接近があった.1-1とは限らないが、1-1-(0/1)が含まれているので、数字がおかしい...
ちゃんと勘定しなさい.何も言えない.状況をよく考えなさい.
点火式は簡単だ.
long long arr[91];
arr[1] = 1;
arr[2] = 1;
for (int i = 3; i <= N; i++) {
arr[i] = arr[i - 1] + arr[i - 2];
}
ここで注意しなければならないのは、arrをlong long
で発表したことです.intが長くなる場合は、int
ではなくlong long
と宣言すべきである.そのため、実際にエラーが発生したのはint
と発表されたからです.9桁を超える場合は、そのままlong long
に変更しましょう.考えてみれば、90桁だったのにint
で装おうとした私はバカだった.Reference
この問題について(白駿2193号:李親水), 我々は、より多くの情報をここで見つけました https://velog.io/@ntbij29/백준-2193번-이친수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol