2021-01-19
3663 ワード
2748号
1.アイデア
n移行時にn番目のフィボナッチ数を出力することを考慮して、配列を作成し、配列にフィボナッチ数を格納する方法.
#include <iostream>
using namespace std;
int main()
{
long long n;
long long a[96]={0, };
cin>>n;
a[0]=0;
a[1]=1;
for(int i=2; i<=90; i++)
{
a[i]=a[i-1]+a[i-2];
}
cout<<a[n];
}
3.悟りしかしnが90以下の自然数の条件を考慮せずにint型配列を用い,90回のフィボナッチ睡眠int型の範囲を超えたのでlonglong!
1003号
1.アイデア
最初に問題で提供された関数を使用し、関数で静的変数が0の場合、acount+1またはallでbcount++を出力しますが、エラーはタイムアウトです.だからDown-Top方式を使うことにしましたDown-Topは以前の値を保存し、次の問題を解くときにインポートします.
#include <iostream>
using namespace std;
int a[44][2];
int main()
{
a[0][0]=1;
a[0][1]=0;
a[1][0]=0;
a[1][1]=1;
for(int i=2; i<41; i++)
{
a[i][0]=a[i-2][0]+a[i-1][0];
a[i][1]=a[i-2][1]+a[i-1][1];
}
int i,t,n,f;
cin>>t;
for(i=0; i<t; i++)
{
cin>>n;
cout<<a[n][0]<<' '<<a[n][1]<<'\n';
}
return 0;
}
3.悟り問題を通して,動的プログラミングに初めて触れ,その中でもDown Top方式を理解した.
1181
1.アイデア
string型ベクトル受信単語を作成しsortでソート
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
int n;
cin>>n;
cin.ignore();
vector<pair<int,string>>v(n);
for(int i=0; i<n; i++)
{
cin>>v[i].second;
v[i].first=v[i].second.size();
}
sort(v.begin(),v.end());
cout<<v[0].second<<'\n';
for(int i=1; i<n; i++)
{
if(v[i].second!=v[i-1].second)
{
cout<<v[i].second<<'\n';
}
}
}
3.悟り
最初は文字列が辞書順に並ぶほどではありませんでしたが、どうしても長さ順に並ぶことが思い出せませんでした.そこでグーグルを試してみると、pairベクトルを使って2つのデータ型を格納できることが分かったので、文字列を文字列長に保存して並べ替えると簡単です.後でpairベクトルを多く利用します
Reference
この問題について(2021-01-19), 我々は、より多くの情報をここで見つけました https://velog.io/@pyj0257/2021-01-19テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol