プログラミング

ペンキ

一次元DPが大好きなので,ペンキ問題について書きます。 ペンキ問題は おいおい,使いかけのペンキの缶を放っておいたら中のペンキが乾いてしまうよ。 | OJ 板がn枚あり,i番目の板の面積はsiです。 ペンキの缶がたくさん(加算無限個)あり,1缶分のペンキで…

スタックとレジスタ

関数呼び出しにおいて,実引数はスタックまたはレジスタで渡されます。 適当なコンパイラでは関数は「まずスタックを読み込み,読み切ったら今度はレジスタから読み込む」という方式を採用しているようです(Borland,EasyIDECなど)。 これを利用して,次のよ…

ポインタとconst

ポインタはアドレスを格納する変数。 constは変数を書き換えないようにする修飾子。 この2つを組み合わせると面倒です。 int main(){ int a, b; const int *p = &a; a = 10; //*p = 10; エラー p = &b; } int main(){ const int a = 10, b = 0; int const *p…

Numer0n

Numer0nは数当てゲームです。 コンピュータ戦のときは,コンピュータが決めた4桁の数をプレイヤーが当てようとします。 プレイヤーが何か4桁の数を一つ言うと,コンピュータはそれがどれくらい当たっているかを答えます。同じ桁に同じ数字があったら「EAT」…

4[C入門]

Cでは文字と文字列は違います。'a','3','!'みたいなのが文字。"abc","atcoder","yk0n"みたいなのが文字列です。文字は「'」で囲み,文字列は「"」で囲みます。 文字 文字は数に対応しています。これが文字コードです。 'a'の文字コードは97。'3'の文字コ…

*(C入門 + 3)

ポインタ 複数の変数を一度に用意しなければいけないときがあります。そういうときに配列を使うのですが,配列を理解するためにはポインタを理解していないといけません。 int型のaという変数を宣言したとき,メモリ上のどこかに数バイト(環境によるけど4バ…

C入門[2]

if文,for文,while文その他について簡単に説明 条件分岐 if(①) 中身; ①が真(=0でない)ならば実行される。 if(①) 中身1; else 中身2; ①が真ならば中身1が,偽(=0に等しい)ならば中身2が実行される。 switch(⓪){ case ①: 中身1; case ②: 中身2; : default: 中…

C入門[1]

今回はちょっと詳しくやるので長くなります。 標準出入力 CUIプログラムは,入力に応じて出力をします。 このときの入力を標準入力といい,出力を標準出力といいます。 コマンドプロンプトで普通に実行したときは,ユーザの入力が標準入力で,プログラムによ…

C入門[0]

新しく入ってくる後輩にプログラミングを教えなければいけないので,そのための資料を作っておきます。 C入門,第0回。CUIとGUIについて プログラムには2種類あります。CUIプログラムとGUIプログラム。 あなたが普段使っているのはGUIの方です。WordやExcel…

競プロ用語

twitter上の競プロerの文化や,erが使っている用語を紹介しようと思います。 ・色 競プロのコンテストに出場すると,成績に応じてレートが変動します。レートは色分けされています。 例えばatcoderでは 色 レート 赤 2800以上 オレンジ 2400以上 黄色 2000以…

競プロ

学校でパソコン同好会があり,僕はそのプログラミング部門で後輩に C/C++ を教えています。人にものを教えるというのは結構難しいんですね。 人にプログラミングを教えるにあたって最も苦労したのが「何を作ればいいのか分からない」ということ。 プログラム…