2020-01-01から1年間の記事一覧
MathJax.Hub.Config({ tex2jax: { inlineMath: [["\\(","\\)"] ], displayMath: [ ['$$','$$'], ["\\[","\\]"] ] } }); Educational Codeforces Round 84 (Rated for Div. 2)のバチャをしました。( 12/1 ) Dashboard - Educational Codeforces Round 84 (Rat…
MathJax.Hub.Config({ tex2jax: { inlineMath: [["\\(","\\)"] ], displayMath: [ ['$$','$$'], ["\\[","\\]"] ] } }); Educational Codeforces Round 85 (Rated for Div. 2)のバチャをしました。( 11/27 ) Dashboard - Educational Codeforces Round 85 (Ra…
MathJax.Hub.Config({ tex2jax: { inlineMath: [["\\(","\\)"] ], displayMath: [ ['$$','$$'], ["\\[","\\]"] ] } }); Educational Codeforces Round 94 (Rated for Div. 2)のバチャをしました。( 11/26 ) Dashboard - Educational Codeforces Round 94 (Ra…
MathJax.Hub.Config({ tex2jax: { inlineMath: [["\\(","\\)"] ], displayMath: [ ['$$','$$'], ["\\[","\\]"] ] } }); Educational Codeforces Round 98 (Rated for Div. 2)のバチャをしました。( 11/25 ) Dashboard - Educational Codeforces Round 98 (Ra…
MathJax.Hub.Config({ tex2jax: { inlineMath: [["\\(","\\)"] ], displayMath: [ ['$$','$$'], ["\\[","\\]"] ] } }); Codeforces Round #574 (Div.2) のバチャをしました。( 11/18 ) Dashboard - Codeforces Round #574 (Div. 2) - Codeforces ABCD1D2E の…
MathJax.Hub.Config({ tex2jax: { inlineMath: [["\\(","\\)"] ], displayMath: [ ['$$','$$'], ["\\[","\\]"] ] } }); Codeforces Round #577(Div.2) のバチャをしました。( 11/16 ) Dashboard - Codeforces Round #577 (Div. 2) - Codeforces ABCD の 4完 …
MathJax.Hub.Config({ tex2jax: { inlineMath: [["\\(","\\)"] ], displayMath: [ ['$$','$$'], ["\\[","\\]"] ] } }); Codeforces Round #581(Div.2) のバチャをしました。( 11/10 ) https://codeforces.com/contest/1204 ABCD1D2 の5 完 ( 1:45 ) でした。…
インライン関数ってどれだけ早いの? インライン関数がどれだけ早いのか気になったので、調べた。 インライン関数ってどれだけ早いの? コード 結果 参照渡しにしてみた 結果 どのくらいの長さの関数だったらinlineにすべきか? 結果 結論 コード #include<iostream> #</iostream>…
自力でせんつなぎ!がしたい。ztnに頼りっぱなしは良くないのでは? これをやる https://qiita.com/souring001/items/f752c655762ebb74a05c JavaSprictもHTMLも全然わかんない Leafletとは Leafletとは、地図を表示するために使われているJavaScriptライブラ…
やったこと JavaScriptの地図ライブラリ、Leafletを用いてせんつなぎ!を再現(gpxファイルを地図上に描画した)。 自作OS20日目をやった。アプリの起動に成功。 チョムスキーが気になったので、「我々はどのような生き物なのか」を借りた。ちょっとずつ読む…
1. メモリ管理の続き メモリの管理を0x1000バイト単位で管理することにする。 切り上げはどうするかというと、and演算を使う。i = i & 0xfffff000 とすれば、0x1000以下の数字を切り捨てられるので改造して、 i = (i + 0xfff) & 0xfffff000 とすれば切り上げ…
1. ソースの整理 長くなったbootpack.c の一部をkeyboard.c とmouse.c に分割。 2. メモリ容量チェック (1) まずはメモリの容量をチェック。その前に、キャッシュを停止する必要がある。 2.1 キャッシュとは キャッシュとは、CPU内部にある小さいメモリ。メ…
1. マウスの解読 (1) マウスから得たデータを解読して、それに合わせてマウスカーソルを動かすぞ。 マウスからのデータは3バイトずつ。あと、最初に0xfaが送られてくる。 0xfaは読み捨てるのと、3バイトずつのデータを1バイトずつ入手して、3バイト溜まるご…
1. キーコードを取得しよう ・キーボードからデータ(キーコード)を取得する まず、キーボードからデータを受け取った直後にPICに対して、IRQ1が発生したのを確認したよ〜ということを教えてあげる必要がある。 これをしないと、PICは次の入力に対して反応…
久しぶりにやる。 1. ソースファイル分割 2. Makefileの整理 3. ヘッダファイル整備 割愛 4. やり残した説明 load_gdtr関数 新たに追加したload_gdtr関数は、指定されたリミットとアドレスをGDTRという48ビットのレジスタに代入する関数。 48ビットレジスタ…
5日目。 1. 起動情報の受け取り bootpack.cでVRAMの場所とかサイズを生の数字で打ち込んだが、本来はこれらはasmhead.nasでメモした値を取得して使うべきである。 2. 構造体を使ってみる 起動情報のパラメタはまとめて構造体にしてしまう 3. 矢印表記を使っ…
1. C言語からメモリに書き込みたい アセンブリ言語とC言語の連携 画面に何か書き込むにはVRAMに何か書き込めばいい。とりあえずアセンブリ言語で書いてみる。 C言語でwrite_mem8が使われると、アセンブリ言語で書いた_write_mem8に飛ばされて、引数はESP(ス…
1. さあ本当のIPLを作ろう INT 0x13 → BIOS関数。ディスクの読み込み書き込み、etc… AH = 0x02 でディスクの読み込み。 指定されたレジスタに値を入れて関数呼び出し。 ディスクのどの場所を読み出すか? シリンダ、ヘッド、セクタを指定して場所を指定する…
1. テキストエディタ TeraPad、というものがオススメされている。まあ、Emacs を使う。 2. 開発再開 新しく出てきたアセンブリ言語の関数 ORG:実行時にPCのメモリのどこに読み込まれることになるかを教えるための命令。 JMP:goto文と一緒。 MOV:MOV AX, 0…
1日目です。メモ書き程度のものです。 1. とりあえずやってみる バイナリエディタというものがあるらしい。 Emacs でもバイナリの編集ができる。https://ayatakesi.github.io/emacs/24.5/Editing-Binary-Files.html 2. 結局何したの? PCの中心はCPUで、CPU…
はじめに 競技プログラミング純粋培養勢な僕ですが、他の技術にいろいろ興味が出てきた(無知過ぎて危機感を覚えてきた)ので、勉強しようと思った次第です。 まず「CPUの創りかた」を読みました。めちゃくちゃ面白かったです。実際に自作したらまたまとめる…
問題のリンク E - + Graph 考察 一つの頂点に数を書き込んだらあとは一意に決まる。とりあえず頂点1 にx と書き込んでみる。すると他の頂点の数はx を含む式で書き表せる。 サンプル2 頂点に書き込める数字は正の整数なので、1 <= x <= 3 が答えになりうる。…
問題のリンク D - Modulo Operations 考察 少し自分の手で操作をしてみて気づくことは、S[i] < S[j] を満たすとき、S[i]、S[j] の順番に取り除くと、S[i]をとり除いた後、黒板に書かれた数はS[i] 未満になっているので、S[j] を取り除いても黒板の数は変わら…
問題のリンク C - Best-of-(2n-1) 考察 期待値DPがしたい E[i][j] := 高橋くんがi 回、青木くんがj 回勝っている状態からどちらかがN回勝つまでに行われるゲームの回数の期待値。 とすると、期待値DPの通常の手続きで解ける、がO(N ) は通らない。 タイトル…
問題のリンク D - 11 考察 ほとんどの要素が異なるので、異なる場所から取り出した部分列は大体異なる。同じになるパターンを数えるのが速そう。 同じになるパターンに関係してくるのはa[i] = a[j] ( i j ) を満たすもの。そのようなi, j と他の要素を区別し…
問題のリンク E - Tak and Hotels 考察 1 日でいけるところまでいく、を繰り返すのが最善。x[i] から1 日でいける最も右にあるホテルの位置は、二分探索で簡単に求まる。 サンプル1 はこんな感じになる。(0 - indexed) クエリ1 個目のホテル0 からホテル7 …
問題のリンク E - Change a Little Bit 考察 こういう問題はそれぞれの要素が合計何回足されるかを調べれば良さそう。 コストの和を最小にするためには、Si Ti を満たすようなi のうち、c[i] が小さい順に変更していくのが最適であるとすぐにわかる。 さて、…
問題のリンク C - Closed Rooms 考察 操作は、 1. 最大Kマス進む 2. 最大K個'#' を'.' に変える ゴールするのは操作1 をした直後であるので、1→2 という操作を考える代わりに2→1 と考えたほうが見通しが良さそう。 2→1 という操作を考えると、1 で進むKマス…
問題のリンク B - Hamiltonish Path 連結な単純無向グラフが与えられる。以下の3条件を満たすパスを見つけなさい。 2個以上の頂点を通る 同じ頂点を2度以上通らない パスの少なくとも一方の端点と直接辺で結ばれている頂点は、必ずパスに含まれる 考察 解説A…
負の香り高さを持つイワシ、どんな臭いがするのでしょうか 問題のリンク E - ∙ (Bullet) 考察 それぞれのイワシについて、仲が悪いイワシの数を数えることはまさにこれ keke.hatenadiary.com 今回の条件は なのでちょっと変形して、 にすれば、数々の過去問…