アルゴリズムを勉強するときに参考にしてください
4630 ワード
どうして知らないのですか。🤔
どうして今知ってるの?🤔
勉強しているうちに、こんな考えがたくさんあります.
この文章の中で、特にアルゴリズムを勉強するとき、知っていれば、丁寧に整理しておきます.
後で何か知っていることがあれば、追加を整理します.
アルゴリズムはC++で解いたほうがいい
ただし,必ずしもC++で解く必要はなく,C++では難しいこと(文字列処理など)にPythonを付帯して用いることができる.
理由は次のとおりです.
これはPythonが非常に遅いため、運転速度の違いです.アルゴリズムの種類は異なりますが、5~100倍の差がある場合があります.
本稿はC++に基づいて作成する.
<bits/stdc++>ヘッダの使用
上のタイトルには事前に多くのタイトルが含まれているので、一つ一つ含める必要はありません.
しかし、msvcコンパイラ(visualstudio 2017/2019)では使用できません.代表的でよく使われるタイトルを単独で処理したり、覚えたりするのが望ましいです.
実数の記憶、演算の過程で必然的に誤差が発生する
これは、エラーデータ型の特徴、例えば0.1+0.1+0.1がコンピュータ上で0.3ではないためである.0.1をバイナリ数として表す場合、無限小数であるため、コンピュータ注釈の有限性により誤差が生じる.エラーデータ型の特徴を説明するには,長いページ処理が必要であるため,これを知るだけでよい.
比較エラーでは等号は使用できません
同じくミス資料型の特徴のためです.一緒にやろうint main(void){
double a = 0.1 + 0.1 + 0.1;
double b = 0.3;
if(a == b) cout << "equals";
if(abs(a - b) < 1e-12) cout << "equals by function";
return 0;
}
result: equals by function
これも、上記で説明したミス資料型の特徴であり、ミス資料型は不等号で比較され、誤差範囲で比較されるからである.二人の差が十分小さいなら同じ非常に小さな差の値です.例えば、1^(-12).
スペースを含む文字列を受信するときにgetlineを使用する
次のコードを見てみましょう.int main(void){
string s;
getline(cin, s);
cout << s;
}
input: Hello World!
output: Hello World!
getline()関数を使用して、上記のスペースを含む文字列を入力として受信します.
ios::sync_with_stdio(0); cin.tie(0);書き上げる
C標準I/Oと切り離されたコードとバッファのコードを一度にクリアします.これでI/O時間が短縮されるので必ず書きます.
endを使用しない
改行後にバッファを空にするコードですcinですtie(0);バッファを一度にクリアすることにします.絶対使わないでね
改行する場合は、改行文字を印刷します.
(エンコードテスト中)出力末尾にスペースや改行があっても構いません
スコアサーバは、テストケースのスコアを表示する部分のみを表示します.最後に表示されるスペースや改行を心配する必要はありません.
私が準備した内容はここまでです。個人学習のために書かれていますが、知識はすべての人に開放されなければならないので、そう書きます。有益な内容を知っていれば、ゆっくり追加していきますので、お好きになってください!ありがとうございます!
注意:
https://blog.encrypted.gg/921?category=773649
https://blog.encrypted.gg/965
https://blog.encrypted.gg/922?category=773649
https://blog.encrypted.gg/923?category=773649
Reference
この問題について(アルゴリズムを勉強するときに参考にしてください), 我々は、より多くの情報をここで見つけました
https://velog.io/@devnovy/알고리즘을-공부할-때-참고하면-좋을-것들
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
勉強しているうちに、こんな考えがたくさんあります.
この文章の中で、特にアルゴリズムを勉強するとき、知っていれば、丁寧に整理しておきます.
後で何か知っていることがあれば、追加を整理します.
アルゴリズムはC++で解いたほうがいい
ただし,必ずしもC++で解く必要はなく,C++では難しいこと(文字列処理など)にPythonを付帯して用いることができる.
理由は次のとおりです.
これはPythonが非常に遅いため、運転速度の違いです.アルゴリズムの種類は異なりますが、5~100倍の差がある場合があります.
本稿はC++に基づいて作成する.
<bits/stdc++>ヘッダの使用
上のタイトルには事前に多くのタイトルが含まれているので、一つ一つ含める必要はありません.
しかし、msvcコンパイラ(visualstudio 2017/2019)では使用できません.代表的でよく使われるタイトルを単独で処理したり、覚えたりするのが望ましいです.
実数の記憶、演算の過程で必然的に誤差が発生する
これは、エラーデータ型の特徴、例えば0.1+0.1+0.1がコンピュータ上で0.3ではないためである.0.1をバイナリ数として表す場合、無限小数であるため、コンピュータ注釈の有限性により誤差が生じる.エラーデータ型の特徴を説明するには,長いページ処理が必要であるため,これを知るだけでよい.
比較エラーでは等号は使用できません
同じくミス資料型の特徴のためです.一緒にやろう
int main(void){
double a = 0.1 + 0.1 + 0.1;
double b = 0.3;
if(a == b) cout << "equals";
if(abs(a - b) < 1e-12) cout << "equals by function";
return 0;
}
result: equals by functionこれも、上記で説明したミス資料型の特徴であり、ミス資料型は不等号で比較され、誤差範囲で比較されるからである.二人の差が十分小さいなら同じ非常に小さな差の値です.例えば、1^(-12).
スペースを含む文字列を受信するときにgetlineを使用する
次のコードを見てみましょう.
int main(void){
string s;
getline(cin, s);
cout << s;
}
input: Hello World!output: Hello World!
getline()関数を使用して、上記のスペースを含む文字列を入力として受信します.
ios::sync_with_stdio(0); cin.tie(0);書き上げる
C標準I/Oと切り離されたコードとバッファのコードを一度にクリアします.これでI/O時間が短縮されるので必ず書きます.
endを使用しない
改行後にバッファを空にするコードですcinですtie(0);バッファを一度にクリアすることにします.絶対使わないでね
改行する場合は、改行文字を印刷します.
(エンコードテスト中)出力末尾にスペースや改行があっても構いません
スコアサーバは、テストケースのスコアを表示する部分のみを表示します.最後に表示されるスペースや改行を心配する必要はありません.
私が準備した内容はここまでです。個人学習のために書かれていますが、知識はすべての人に開放されなければならないので、そう書きます。有益な内容を知っていれば、ゆっくり追加していきますので、お好きになってください!ありがとうございます!
注意:
https://blog.encrypted.gg/921?category=773649
https://blog.encrypted.gg/965
https://blog.encrypted.gg/922?category=773649
https://blog.encrypted.gg/923?category=773649
Reference
この問題について(アルゴリズムを勉強するときに参考にしてください), 我々は、より多くの情報をここで見つけました https://velog.io/@devnovy/알고리즘을-공부할-때-참고하면-좋을-것들テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol