2019-01-01から1年間の記事一覧

OS日記~Makefileの整理~

OS

今日はMakefileを整理しました。 AS := x86_64-elf-as CC := x86_64-elf-gcc OBJS := boot.o kernel.o IMAGE := myos %.o: %.S Makefile $(AS) $*.S -o $@ %.o: %.c Makefile $(CC) -c $*.c -o $@ -std=gnu99 -ffreestanding -O2 -Wall -Wextra $(IMAGE).bin…

vuetifyちょっとわかった

vue

vuetifyの仕組みがちょっとだけわかった気がした。 Nuxt.js では、最初にvuetifyでプロジェクトを作成すると、layoutsディレクトリにdefault.vueが自動で作成される。これがルートのvueファイルになる。 Nuxt.js では、<nuxt />を使うと、vueの<router-link />ができるようになる。 </router-link></nuxt>…

Codeforces 296 DIV1 B Clique Problem

qiita.com 続き。 codeforces.com こどふぉの問題ですね。 普通にわからんかったので、色々調べました。 問題概要 数直線上に位置 x_i と 重み w_i を持つ点 N が与えられる。この点から、 どの 2 点を選んでも|x_i - x_j| >= w_i + w_jを満たすグラフの最大…

Nuxt.jsでなんか作る(1)

vue

Todoでも作ることにした。 Vuetifyの扱い方がいまだに少しわかんないんだけど、ちょっとずつやる。 今日はUIいじった。 プロジェクトディレクトリのlayoutが実際のエントリーポイントとして用意されているみたいだ。 カードレイアウトの隙間が作れなくて詰ま…

KUPC 2015 A 東京都 と ABC 103 D - Islands War

https://qiita.com/drken/items/e77685614f3c6bf86f44 続きです。 区間スケジューリングの問題がメインです。 区間スケジューリングは、個々の区間に、少なくとも 1 つ垂直に棒が刺さっている状態にするには、最小で何本必要ですかという問題らしい。けんち…

Nuxt.js 触ってみた

vue

Nuxt.js は、フロントエンドとバックエンドをまとめて管理してくれるフレームワークっぽい。 twitter 関連の何かをやろうとすると、どうしてもバックエンドが必要になってくるので、勉強します。 npx create-nuxt-app <project-name> これで、nuxtのプロジェクト作成 npm r</project-name>…

JOI 2007 予選 A おつり

qiita.com 続き。 atcoder.jp コインの貪欲法の問題。 def main(): n = 1000 - int(input()) ans = 0 while n > 0: for i in [500, 100, 50, 10, 5, 1]: if n >= i: n -= i ans += 1 break print(ans) if __name__ == '__main__': main() これで通った。 次…

OSメモ(5)

OS

grub2 のソースコード読み始めた。 最初のセクタを0x7c00にロード BIOS → ブートセクタ → ブートローダ → カーネル MBRは、ハードディスクの先頭セクタに書かれている512バイトの領域。最初のコードとパーティションテーブルが書かれている。 grub2/grub-cor…

メモ(1)

vue

npxとは ローカルにインストールした npm パッケージ を、npx コマンドだけで実行できるようになる https://qiita.com/tonkotsuboy_com/items/8227f5993769c3df533d ってことは % npx vue-cli-service serve --https で起動できるわけだ。yarn に依存しない…

yukicoder No.133 カードゲーム

qiita.com 続きです。 yukicoder.me 問題概要 1 ~ 2 * N が書かれたカードを 2 分割して、N ターンあるごとに、1 枚ずつ出していく。大きい数が書かれていた方が勝ち。カードに書かれている番号が与えられるので、どちらかが勝つ確率を求める。 考えたこと …

vue-cliでhttps

vue

httpsにする必要が出てきたので、httpsにする方法を調べてた。 結果的に、 yarn serve --https これか node_modules/.bin/vue-cli-service serve --https でhttps起動できる。 npm run serve --https これだと設定上できない。変えればできるのかな。 証明書…

ABC 054 C One-stroke Path と OI 2009 予選 D カード並べ

https://qiita.com/drken/items/e77685614f3c6bf86f44 の続き。 https://atcoder.jp/contests/abc054/tasks/abc054_c 問題概要 自己ループ、多重辺がないグラフが与えられる。頂点番号 1 から全ての頂点をたどるパスは何通りあるか? 考えた解法 dfsで全探索…

OSメモ(4)

OS

ページディレクトリ 32bitアドレスの場合、ページングは、以下の順番 リニアアドレスの上位 10 bitと CR3 レジスタから、PDE(ページディレクトリエントリ)を取得 ページディレクトリエントリからページテーブルのアドレスを取得 リニアアドレスの中位 10 bit…

vue-cli 3 のコマンドいろいろ実行した所感

vue

vue create <project-name> <project-name>という名前のプロジェクトが作られる vue add <plugin> 既存プロジェクトに、vue-cli3のプラグインを追加する。 vue-cli3 は、@vue/cli-plugin- で始まるプラグインのこと。 この時、generator[s]も起動される。generator[s]とは、パッケージのインスト</plugin></project-name></project-name>…

AOJ 0503 Cup with python

qiita.com 続きです。 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0503 問題概要 大きさが小さい順にカップが積まれている皿が 3 つあり、隣の皿に、うつしていって(カップの大きさが小さい→大きいの動かし方はだめ)、最も左か最も右に移す…

OSメモ(3)

OS

64bitのメモリを理解するために、Linuxのブートプロセスをみるを読む。 64bitのOSでは、DS, ES, FS, GS, SS は、使わないようだ。これは、フラットモデルを使うからみたいだ。もしかしたら、フラットモデルじゃないモデルを使うなら、使えるのかもしれない。…

npmのモジュール作成

vue

寝てないので普通に限界なんですけど、ちょっとしたことでも書いてやる。 vue を触っていく上で、欠かせないのが、npmパッケージマネージャでして。 どうやって作るんかな〜っていうのを眺めてた。 mkdir sample-module 先に、ディレクトリ作る cd sample-mo…

ARC 005 C 器物損壊!高橋君

qiita.com 続き。 atcoder.jp むずくてワロタ。 問題概要 壁'#', 平地'.', スタート's', ゴール'g' で構成されたH*Wのマス内で、スタートからゴールまで、壁を2回まで壊していいから、平地を通って行けるか。 考えたこと(間違い) s から g までに到達する経…

AGC 033 A - Darker and Darker

今日はやらない予定だったんですけど、昨日のが不完全燃焼だったの思い出して悶々としてしまったので。 qiita.com 続きです。 atcoder.jp リンクです。 問題概要 H*Wのマスに白マス'.'と黒マス'#'がある。1ターンで、黒マスを中心とする十字に塗り潰すことが…

OSメモ(2)

OS

wiki.osdev.org 今日はリンカスクリプトを読んだ。 KERNEL_VMAは仮想アドレスのベースとなるアドレスだと思う。 ADDRは、 Return the absolute address (the VMA) of the named section. と書いてあったので、VMAを含んだ(含んだという言い方はおかしいか).t…

vueでチャットアプリ作った

vue

vueとfirebaseでチャットアプリを作った。 観たのはこのサイト cr-vue.mio3io.com 爆速で作れるのすごいと思った。 firebaseで使用したのは、twitter認証とrealtime database。 単純に埋め込んだだけなので、UIはご勘弁。 firebaseの api key の公開とかわか…

ABC 088 D Grid Repainting

qiita.com 続き。 atcoder.jp ねむみ。 from collections import deque def main(): h, w = [int(i) for i in input().split()] f = [] c_of_sharp = 0 for i in range(h): line = list(input()) for c in line: if c == '#': c_of_sharp += 1 f.append(line…

OSメモ(1)

OS

wiki.osdev.org 64bitOSが作りたいなぁと思っています。(30日OS自作本やったので) 手始めに、上記のサイトをやっていく。できれば毎日やりたい。 "まともに動く"を目標にやっていきたいかも。 x86_64-elf-gcc -ffreestanding -mcmodel=large -mno-red-zone -…

vueでTodo作った

vue

長いから3行で vue-cli 3 でTodo書いた component化した githubにデプロイした b1u3-yumanoguchi.github.io こちらになります。 参考にしたのはここ cr-vue.mio3io.com

JOI 2010 予選 E チーズ

qiita.com の続きです。 atcoder.jp BFSの続き。 迷路には、'X'と'.'と1~9までの数字が埋まっており、スタートからマスを進んで、1~9を順番に取っていき、その時の最小手数を求めてねという問題。 from collections import deque BIG = 1000000 def main(): …

AOJ 1160 島はいくつある?とABC 007 C 幅優先探索

qiita.com DFSとBFSの問題。 愚直な実装でいける。 import sys sys.setrecursionlimit(1000000) def rec(y, x, f): f[y][x] = '0' for dy, dx in [(-1, -1), (-1, 0), (-1, 1), (0, -1), (0, 1), (1, -1), (1, 0), (1, 1)]: if 0 <= y+dy < len(f) and 0 <= …

ARC 037 B バウムテスト

qiita.com の続きです。 問題は、与えらたグラフが、木を何個持つか答える問題。 最初に考えたWAのやつ。単方向。 """ 木である場合は、含まれる頂点を 1 度開始しか通らない """ visited = [] tree = [] def rec(i, mark): global visited visited[i] = Tru…

ATC 001 A 深さ優先探索とARC 031 B 埋め立て

qiita.com qiitaの初級編の問題。 ATC 001 A 深さ優先探索 深さ優先は、そのまんま import sys sys.setrecursionlimit(10000000) f = [] h, w = 0, 0 def rec(y, x): if f[y][x] == 'g': return True f[y][x] = '#' ans = False for dy, dx in [[1, 0], [-1,…

ABC 002 D - 派閥

はい、昨日完成できなかった問題。 布団に入ったあと、すぐに浮かんだ解答。 寝ようと思ったあとに、考えたり、思いつくのやめたい。 昨日より、すっきりしたし、簡単だと思った。 bit全探索で、頂点の組み合わせを出す。その後、それらの頂点が、互いに繋が…

ARC 029 A - 高橋君とお肉 と ABC 002 D - 派閥

けんちょんさんがまとめてくれてるqiitaのAtCoder精選問題集の問題(初級)。 高橋くんとお肉は、そんなに難しくなかった。樹形図的に2のN乗の全探索で、肉を2つの鉄板に振り分けていく問題。こういうパターンもあるのかという気持ちになった。 t = [] n = 0 d…