RC-S380の分解と考察

動機 Arduino もとい ESP32 で NFC(Near Field Communication) の規格の 1 つである Felica を読み書きしたくて、ウェブ検索をしました。Arduino で Felica を使用するには、Sony の RC-S620/S で読み込むことができるということがわかりました。しかし、RC-…

ARC004 A

復習も兼ねて rust で解き直してみる。 fn main() { let n = { let mut s = String::new(); std::io::stdin().read_line(&mut s).unwrap(); s.trim_end().parse::<i32>().unwrap() }; let mut xy: [[i32; 2]; 100] = [[0; 2]; 100]; for i in 0..n { let (a, b) =</i32>…

__builtin_bswap

mgba 読んでたら __builtin_bswap というマクロが出てきた。 これは GCC に含まれるビルトイン関数。 gcc.gnu.org これは、バイトを逆順に呼び出す関数。例えば、データ上のリトルエンディアンの値をビッグエンディアンで読み出したりできる。 正確には、変…

GBAの開発環境

お久しぶりです。 最近は諸事情で時間が大きく取れているので、前から作りたいなぁと思っていたエミュレータの作成に取り掛かっています。 エミュレート対象は GBA (Game Boy Advance) になります。 まだ調査、分析段階ですが、mgba や virtualboyadvance と…

django-rest-social-auth!

前置き 認証勉強したい。 python使いたい。 jwt使いたい。 django-rest-social-authを使ってみる(読んでみる)ことにした。 github.com example_projectを動かすとき、いろいろエラー出るので、 動かしたときのパッケージうんぬんを載せておく。 asgiref==3.2…

pythonでunzip

三行でまとめると 某サイトでたくさんzipを落とした。 マウスでクリックして解凍が嫌だった。 だからスクリプトで解凍した。 以下、スクリプト import os, glob, zipfile for name in glob.glob("*.zip"): base, ext = os.path.splitext(name) os.mkdir(base…

build.gradleにtest結果をブラウザで表示させるタスクの追加

デスクトップでプログラミングするモチベーションが高まったので、javaとかいろいろそろえてみた。 プロジェクトの環境は、openJDK 14 と gradle 6.3。 > gradle test でテストの実行、カバレッジ表示用のhtmlが表示される。 だから、これをコマンドラインか…

ひとりぼっちの○○生活6巻感想

僕が感想を書くなんて滅多にないんですけど、書いていこうと思います。理由は気まぐれです。それでは、ひとりぼっちの○○生活6巻の感想、はっじまーるよー!待ちに待った待望の6巻です。kindle版を買いました!特典に興味がなかったので。(話と絵が好きなん…

push後rebaseを試した

git

バイトしてて、git push後にtypoに気づいて、前のcommitに含めたいと思ったので、試してみた。 Hello.txtに文字列を挿入した状態で、1つのcommitにしたいという状況を想定した。 % touch Hello.txt % git add Hello.txt && git commit -m 'Hello.txtの作成' …

vim-plugについてメモ

vim

vimのプラグインを書いてみたくなった。そのためのメモ。 vim-plug は、現代の Vim plugin manager の 1 つ。 vim-plug のインストール vim-plug は、1 つの vimscript で配布されているらしい。やることは、/.vim/autoload/にスクリプトファイルを入れるだ…

拡張ダイクストラのメモ

拡張ダイクストラ前回の問題で、拡張ダイクストラを使った。キューにぶち込む値の組を変えていくってことかな?普通のダイクストラの場合は、プライオリティキューに現時点での距離を先頭に、頂点をその次にしたリスト(or タプル)を入れる。これを拡張させた…

ARC 005 C 器物損壊!高橋君

qiita.com 続き。 atcoder.jp dijkstraでどうやってやんだよ...って思って、dijkstraの解答を探した。 ferin-tech.hatenablog.com 拡張ダイクストラとは????????????????????? 明日一通り調べよう... H, W = map(int, input().split())…

ABC 035 D トレジャーハント(2)

昨日の続きです。昨日は、考えでは、ダメなことがわかったので、解答を見た。考えは、だいぶ似ていた。ただし、最短経路上の単位獲得金額がでかい都市を探す必要がなかった。すべての都市を往復することで、経路上の単位獲得金額がでかい都市を特定すること…

ABC 035 D トレジャーハント

qiita.com 続き。 atcoder.jp 考えたこと 1 に戻ってくる最短経路をTから引いて、経路内で最も単位あたりの獲得金額が高い頂点を探して、そこで最大限いたことにするというものを実装してみた。結果的にダメだった。8割くらいACしたけど、残り2割がダメだっ…

JOI 2007 予選 F 船旅

qiita.com 続きです。 atcoder.jp これはすげー簡単だった。まぁ100点問題だしね。 コピペで瞬殺!!! import queue push = queue.heappush pop = queue.heappop INF = 10**16 def dijkstra(s, G, d): q = [] d[s] = 0 push(q, (0, s)) while q: cost, v = …

SoundHound 2018 予選 D - Saving Snuuk

qiita.com 続きです。 atcoder.jp ダイクストラな問題みたい。普通にわからんかったが。 editorial.pdfを見て実装してみる。 最後の出力が になってここがボトルネックになってTLEになっている。editorialにもここの処理書いてないやん。適当に検索したら、…

単一始点最短路探索アルゴリズム(1)

こんにちは、えぬわいです(普通) ダイクストラ法の復習です。 import queue push = queue.heappush pop = queue.heappop INF = 10000 from collections import defaultdict G = defaultdict(list) N, M, S, GOAL = map(int, input().split()) V = N d = [] f…

ARC 041 D 辺彩色(2)

自分の中で、けものみちが熱いです。 qiita.com 続き。 atcoder.jp 難しいなぁと思いながら、解説は理解できたが、実装がわかんなかったので、実装例を見てみた。 kmjp.hatenablog.jp お世話になってる kmjp さん!!!かっけー pythonで書き直し。 from sys…

閉路探索

前回の記事で、解説みると、奇数長の閉路を探索する必要があることがわかった。 閉路の検出ってどうやるんだっけなぁって思って調べた。 inzkyk.github.io わかりやすい。擬似コードも載ってる。確認する。 from collections import defaultdict G = default…

ARC 041 D 辺彩色(1)

qiita.com 続きをやっている。 atcoder.jp 普通にわかんなかったが?(半ギレ) 解答見る。 考察で、逆順に辿ると、上書きする機能がなくなる←天才か? 始点と最初の色で全探索。それプラス、奇数サイクルのことを考えるものらしい。 辺彩色のコードわからんと…

Nuxtでデータフェッチする

vue

Nuxtで自前でapiサーバー建てつつ、コンポーネントのasyncDataでデータをフェッチするっていうのがやりたかった。 はじめに、プロジェクトディレクトリ直下に、apiというディレクトリを用意して、json用のルーティングを用意する。 // project/api/index.js …

Maximum-Cup 2018 C 嘘つきな天使たち

最近努力が足りていないえぬわいです。 qiita.com 続きです。 atcoder.jp 2 部グラフで解けた。塗った時の数を記録していけば、おk。連結であることが保証されていないので、その点は気をつけた。自分で考えてACできるとちょーきもちー。 from collections i…

CODE FESTIVAL 2017 qualB C 3 Steps

俺ガイルとゲーマーズの最終巻が読めていないえぬわいです。今週は、全然解けてないですね〜。もっと解かないとな〜。 qiita.com 続きです。 atcoder.jp ワカンねぇな〜って思って、解説見たら問題の解釈が間違っていたみたい。 思い出した2部グラフの特徴と…

AtCoder ABC 126 D - Even Relation

ぼくがかんがえたさいきょうの生活習慣を送っているえぬわいです。3 日だけですけど。これから続けていくんだという気持ち。 qiita.com 続きです。 atcoder.jp ARC 036 D 偶数メートルのとっかかりの部分みたいな感じでした。たまたま偶数メートルの解説を読…

2部グラフ判定

アニマエールのOP・EDを聞いたら、見返す機運が高まってるえぬわいです。 今日は、蟻本に載ってる2部グラフ判定を自分で実装して理解しました。 ポイントとしては、 とりあえず、塗っていって判定する 塗ってる最中でダメだと思ったら打ち切る 色は、符号を…

ABC 087 D People on a Line

ストライク・ザ・ブラッドで好きなキャラクターは藍羽浅葱。えぬわいです。 qiita.com 続き。 atcoder.jp 重み付きUnionFind木というのがあるらしい... ノード間の重みを保存しつつ、縮約していくアルゴリズムらしい。 qiita.com けんちょんさんの記事を参考…

ARC 036 D 偶数メートル

qiita.com 続き。 atcoder.jp ARC D だけあって解答の読み応えがちげぇぜ(解答見た) UnionFindを使うと、状態管理をすることができる例。 UnionFindで N 個の頂点間を偶数距離で移動できるかの判定に使っている。解答みておったまげた。 class UnionFind(): …

ARC 097 D Equals

ポスター発表が終わりました。えぬわいです。 qiita.com 続きです。 atcoder.jp 概要 1 から N までの数列をシャッフルする。ある数字の組みが与えられるので、その組みの位置をスワップして、最大何個まで元の位置に戻せるかという問題。 考えたこと 組みと…

ABC 049 D 連結

qiita.com 続きです。 atcoder.jp 考察まとめです。 Union-Find木を使って解いてみる。まずTLEになったやつ。 class UnionFind(): def __init__(self, n=None): if type(n) == int: self.par = [i for i in range(n)] self.rank = [0 for i in range(n)] els…

ATC 001 B Union Find

人間は愚か。えぬわいです。 qiita.com atcoder.jp Union-find木の講座用の問題らしい。 Union-Find木とは グループの併合と判定ができるアルゴリズム 併合するのは、グループ同士、判定できるのは、ノード。つまり、グループは木で表される。 初期化 はじめ…