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

行列の計算

pythonで行列を高速に計算したい!numpyを使うと良いのじゃ。 を 乗する。 import numpy as np X = np.matrix([[....],...,[...]]) A = X**r 終わり。速い気がする。 np.array(X) np.matrix(X) で互いに行き来できる。

pythonのsortについて

をリストとすると、 X.sort() でソートできる。を2次元配列のリストとする。上と同様にソートすると、第1成分がソートされたあと、第2成分がソートされる。ところで、第2成分についてソートしたくなることがある。 そうするには、 X.sort(key = lambda x:x[1…

Dwango Programming Contest V / 第5回 ドワンゴからの挑戦状 予選 B - Sum AND Subarrays

Dwango Programming Contest V / 第5回 ドワンゴからの挑戦状 予選 B - Sum AND Subarrays B - Sum AND Subarrays を解いた。 公式解説はこれ https://img.atcoder.jp/dwacon5th-prelims/editorial.pdf。bit演算系の問題は苦手だけど、初めてコンテスト中に…

2015 IndeedなうB D Game on a Grid

これ D: Game on a Grid - Indeedなう(オープンコンテストB) | AtCoder です。最小全域木の問題です。 Prim法で解きました。 Kruskal法の、やり方がわからなかった。 解説曰く、できるらしい。Prim法の解説記事です。 最小全域木をpythonで - kamojirobrot…

ABC065 D Built?

これ D - Built? です。最小全域木の問題です。Kruskal法で実装しました。 最小全域木をpythonで - kamojirobrothersのブログ Kruskal法の記事です。よくある考察のやつです。 気づきませんでした。プログラムはこれ。 from heapq import * def find(A,x) ->…

最小全域木をpythonで

最小全域木の勉強をしたので、まとめる。これ AtCoder 版!蟻本 (初級編) - Qiita をやってて、最小全域木の項目があったのでやった。やり方はwikipedia 全域木 - Wikipedia を参考にした。これのKruskal法とPrim法をやった。 Kruskal法 Kruskal法の理論 Kru…

ABC 107 / ARC 101 D Median of Medianを解いた。

ABC 107 / ARC 101 D Median of Median D - Median of Medians をpython(pypy)で解いた。解説はこれ https://img.atcoder.jp/arc101/editorial.pdf。ほとんど解説どおりだけど、勉強のため自分の言葉で解説する。 解説 以下、 により、 以上の最小の整数を表…

ARC103/ABC111 D Robot Arms

これ D - Robot Arms を解いた。 解説はこれ https://img.atcoder.jp/arc103/editorial.pdf。 参考にしたのはこれ AtCoder ARC 103 D - Robot Arms (600 点) - けんちょんの競プロ精進記録。という長さのアームがあれば、各格子点のx座標とy座標の和が奇数で…

pythonの「=」について

pythonの「=」がよくわからなかったが、教えてもらったり、先述の「苦しんで覚えるC言語」でメモリとかポインタとかを勉強してちょっと分かったので、まとめる。pythonのインタラクションモードで次をやってみる。 a = 1 b = a a = 2 a b すると、次のように…

「苦しんで覚えるC言語」を読んだ。

「苦しんで覚えるC言語」を読んだ。 9cguide.appspot.com筆者が私達の代わりに苦しんでくれている感じ。 読む上で苦しくなることはなく、行間0で読める本だった。 今までpythonしかプログラミング言語は知らなかったので、メモリやポインタなど新しい概念(…

ヘッダファイルを含めて実行する

忘れないように。 簡単のため、関数などを書いたソースファイル及びヘッダファイルを source.c source.h、この関数を使ったソースファイルを main.cとする。これをコンパイルして、 main.exeと名付ける。次をやればよい。 gcc -o main.exe source.c main.c

AGC028 B問題

AtCoder Grand Contest 028のB問題を解いた。 時間内には解けなかったし、解説もよくわからなかった。 問題はこれ B - Removing Blocks。 解説はこれ https://img.atcoder.jp/agc028/editorial.pdf。 参考にしたのはこれ AGC028 B問題 Removing Blocks - ban…

ARC094/ABC093 D問題を解いた

めっちゃ調べて、なるほどって言いながら解いた。 解いた問題はこれ D - Worst Case。 解説がこれ https://img.atcoder.jp/arc094/editorial.pdf。 解説はよくわからなかったので、これ AtCoder ARC 094 D - Worst Case (700 点) - けんちょんの競プロ精進記…

ABC056 D

写経して、通したが、そのコードに反例があったので、メモ。 pythonでやたら速いやつに対する反例。 Submission #3336978 - AtCoder Beginner Contest 056。 5 12 6 4 3 2 1答えは0だけど、1が出力される。

ABC057 D問題を解いた。

AtCoder Beginner ContestのD問題を解いた。 問題はこれ D - Maximum Average Sets。 解説はこれ https://atcoder.jp/img/abc057/editorial.pdf。 今回は問題自体の話ではなく、Counterのfor文の挙動がバージョンによってかなり違うということ。 次のコード…

Visual Code studioを導入して、C++の環境を整えた

タイトル通り、Visual Code Studioを導入して、拡張機能としてC/C++ ConfigurationとClang command adapter configurationを入れた。 基本設定は C-,で、設定できる。大体GUIでできる。ターミナルから起動するには codeでできて、 code ./でカレントディレク…

ARC036 D問題

AtCoder Regular ContestのD問題を解いた。 問題はこれ D: 偶数メートル - AtCoder Regular Contest 036 | AtCoder。 解説はこれ AtCoder Regular Contest 036 解説。 書いてみたら、最後のテストケースだけREになって、なんでや!ってなって、調べた。 あっ…

コマンドを作る

自作のコマンドを作成した - Qiita これを見ながらやった。 echo $PATHで、コマンドを実行する際に参照するディレクトリがわかる。 ちなみに、多分 /etc/profileに書いてある。 ちなみに、設定ファイルの読み込み方は Linux - bash 設定ファイル(Debian 系…

AGC027 C 問題

pythonでやってる人が全然いない・・・。 トポロジカルソートよくわかんないけど、解けたから解説する。 AGC027のC問題 AtCoder Grand Contest 027のC問題です。 これ C - ABland Yard。 解説 公式の解説はこれ https://img.atcoder.jp/agc027/editorial.pdf…

unionfindとdefalutdict

unionfindの勉強をしたので。 unionfindはグラフの頂点で互いに繋がっているかどうかを判断するのに便利です。 追加の仕方がややこしくて、まだ全然、体に馴染んでない。 unionfindのプログラムの肝は、繋がっている頂点に対しては、同じ値を返すという関数…

優先度付きキュー

優先度付きキュー(priority_queue)の勉強をしたので。 heap型を使えば良い。 heapはリストに比べて最小値の取り出しがはやく、新たな数の追加もはやい。 pythonにはheapqというmoduleがある。 heapqのheapには、基準となる数以外に別の数をtupleの形で持つこ…

Binary indexed tree(BIT)をやった

これhttp://hos.ac/slides/20140319_bit.pdfを見ながら、これの基本問題をやった。 やり方はこれを見れば十分です。 問題設定はこちら。 N個の変数v_1, ..., v_n。 Q個のクエリ。 各クエリはv_a_jにw_jを加えるという操作。 answerは各クエリに対してv_1 + .…

2分探索

atcoderで2分探索に気づけないので、覚えるために、書き残しておく。 問題はABC063のD問題。 D - Widespread 解説はこれ。 https://atcoder.jp/img/arc075/editorial.pdf 大事なのは中のコメントのみ(##以下)。 ついでだけど、遅かったので、少し修正した。#…

最大公約数

忘れるので。 def gcd(a, b): while b != 0: a, b = b, a % b return(a)

shellのfor文でファイルを作る

忘れるので。 下でやると00から入力される。 for i in `seq 10 20` do mkdir $i donefor i in {001..023} do mkdir $i done

動的計画法(1)

最近、AtCoder 版!蟻本 (初級編)をやってる。 めっちゃ多い。 多重な動的計画法の実装がうまくいったから、見せびらかそうと思って、記事を書いてる。 本当は解説しようと思ったけど、めんどくさくなった。 問題はABC015のD問題D - 高橋くんの苦悩です。 解…

二次元累積和

ABC106のD問題の解説の二重累積和がよくわからなかったので、簡単に証明をつけた。 まず、を二重配列と考えます。 の各列の累積和を取ったものをとします。 すると、 となります。 次に、の各行の累積和を取ったものをとします。 すると、 となります。 とい…

ABC104

ABC104のD問題 ABC104のD問題で'B'を固定する解法についての解説。 D: We Love ABC - AtCoder Beginner Contest 104 | AtCoder 問題は次のようなものです。 ABCからなる文字列Tに対し、i ABC?からなる文字列Sが与えられたときに、?はABCそれぞれが入り、通り…

Let's noteでlinuxを使用する際に、音が出ない話

思い立って調べてみたら、こんな記事があった。 Let's NoteにLinuxをインストールしたがスピーカーから音が出ない問題【解決!!】 ここにもあるが、結論を言うと、次のコマンドで初期化を行う必要があるみたいです。 sudo alsactl init

メモリを増設した

次の記事を見ながらやった。 Let's Note CF-SX2のメモリを増設して8GBにする | ノート100YEN.com 増設したのはこれ。 https://www.amazon.co.jp/gp/product/B00CQ35HBQ/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1 メモリを斜めに差し込むときには、結構力…