CODE FESTIVAL 2017 Final A - AKIBA

提出へのリンク A を挿入すべき位置を予め調べて決め打ちして挿入し、最終的にできた文字列が AKIHABARA と一致するか見るコードにした。 余り綺麗ではなく、実際解説を読むと AKIHABARA から A を抜いた文字列を全列挙してどれかと一致するか見ればよい。こ…

AtCoder Beginner Contest 106 D - AtCoder Express 2

提出へのリンク セグメント木でやろうとして90分くらい使ったらもう眠いしわからんしで解説読んだらシンプルな累積和でよかった。就寝。 歯を磨いてたら解説の図が頭の中でどうも引っかかって、正方形ではなくてその左上半分ではないかという気がする。L_i <…

AtCoder Beginner Contest 073 D - joisino's travel

提出へのリンク 全頂点が最大200個なのでワーシャルフロイド法を使うことができる。立ち寄る頂点の順番についても最大8個なので next_permutation が使える。便利〜〜〜〜。 ハイライト warshall_floyd(); int ans = LINF; do { int tmp = 0; REP(i,R-1) tmp…

AtCoder Beginner Contest 107 B - Grid Compression

提出へのリンク なんか汚いな…と思って提出して解説読んだら案の定エレガントで、削るんじゃなくて残す行と列マークして交差する文字だけ出力すれば良かった。 書いてるときに basic_string::erase で一瞬ハマった。 for (auto &l: ans) { l.erase(j,1); } a…

AtCoder Beginner Contest 065 B - Trained?

提出へのリンク あっこれグラフじゃ〜〜んと思って Dijkstra で解いて解説読んだら N 回のうちに目的の頂点に到達するかどうかで判定して ok とあってそりゃそうじゃ(オーキド博士)になった。 Dijkstra をスニペット化できたので、でも幸せならOKです。

AtCoder Beginner Contest 082 B - Two Anagrams

提出へのリンク string s,t; cin >> s >> t; sort(ALL(s)); sort(ALL(t),greater<char>()); if (s</char>

AtCoder Regular Contest 059 C - いっしょ / Be Together

提出へのリンク 平均とって丸めて各要素のコスト計算の総和を取るだけでよいのだが、整数同士を割り算を double にキャストし忘れて WA した。初心者です。

AtCoder Beginner Contest 043 B バイナリハックイージー

提出へのリンク A問題ばっかやってたら AtCoder Problems のリコメンデーションが簡単な問題ばかりになってしまった。すみません(誰に?)。 この問題は素直に受け取った文字列通りに文字列をつくるだけですね。何でもいいと思いますが僕は vector<string> で作りま</string>…

ABC137 A,B,C,D 反省会 -- priority_queue と料理

提出一覧へのリンク A: max 2 回やったけど initializer-list 使えば解説のとおり 1 回で済むね B: i < -1000000 || i > 1000000 だったら除外しなきゃとかやったんだけどいま制約条件みたら 0 <= X <= 100 だったわ C: 最初は sort して multiset<string> に放り込</string>…

すべての数字が異なるような日付を探す

問題本日は2019年8月7日だが、この日付に使われている数字はすべて異なる。次にこのような日になるのはいつか。— カステラ(あさやま) (@graws188390) August 6, 2019 リンク切れたときのために問題文引用しておくと 問題 本日は2019年8月7日だが、この日付に…

ABC131-E スター/ウニというグラフ

提出へのリンク 1からそれ以外への頂点すべてに辺を生やしたグラフをスターやウニというらしい。考えた人頭いいな。ウニは頂点間距離の調節がしやすくて応用が効きそう。 構成可能かどうかの判定は、連結でなければいけないという条件から、ありえる頂点対の…

コンテナからある値以上、以下、 more than, less than を探す

C++

初稿では「ソートされてる必要はない」と書いていましたが、イテレータを -- している関係上やっぱりソートされてるほうがいいです。 以上 昇順のコンテナである値以上である最初の要素へのポインタ。 lower_bound() 以下 昇順のコンテナである値以下になっ…

ABC136 A,B,C,D 反省会

提出へのリンク やったねACだよ A: #define int long long してたので max(c - (a - b), 0LL) のようにリテラルつける必要があった B: 桁数えるのに手間取っちゃって to_string(i).length() % 2 != 0 で全探索した C: for 文手書きすると i が N になってた…

ABC131-D ソートを考慮した vector<pair<int,int>> を作る

提出へのリンク 締切が遠いものから着手して他の締切をブッチしてしまってはしょうがないので、締切が近いものから手を付ける。 vector<pair<締切,所要時間>> を作り、素直に std::sort する(ABC128-Bでもやったように)。 締切が同じタスクがあれば、同じタスク同士ではどうい</pair<締切,所要時間>…

ARC081-C map と multiset

提出へのリンク 長い方から2本1組ずつ取っていき、2組つくれた時点で終了です。 最終的には map<int,int> でやりましたが、途中までは multiset<int> でやっていました。しかし multiset だとソート済みとはいえ結局同じ値が複数個含まれているので、いちいち個数を調べる</int></int,int>…

ABC135-D DP 精進しよう / stack の大きさ

提出へのリンク 30分ほど考えてもTLEしない方針すら立たなかったため、解説を読んだ。が、眠い頭ではなかなかわからなかったのでとりあえず写経し、8ケースでバグったので最速正解者のコードに合わせて修正したら通った。 解法は動的計画法で、文字列を左か…

ABC135-C

問題へのリンク 前から食っていけばいいのでは?と実装したらWA。 じゃあ後ろから食っていけばいいのでは?と実装したらWA。 解説読んでも前から食えとしか書いていない。 long long にしたら通った。109 を 3 回足すだけで int からあふれてしまうので、そ…

ABC135-AB

ABC135 へのリンク A: 相異なる整数同士の和が偶数(解説では偶奇が等しい)ならば、整数それぞれからある同じ整数を引いた絶対値が等しくなる B: std::vector は erase とかするとインデックスがずれて面倒なことになるから素直に v[i] で代入したほうがい…

1000日 Splatoon を始めてみた

1000日競プロ を始めたが、個人的に1000日 Splatoon のほうが楽しいので多分続く。めざせ腕前X。

競プロ1000日チャレンジを始めてみた

徳力さんの note で1000日チャレンジというものが最近あり、1000日のあいだに何かしらなした記録を残すことでなにかの上位1/100になることを目指しましょうという内容を読んだ。 なるほどな、ということで、競プロでそれをやってみようと思います。僕はソフ…

上司アンチパターン

前提として、人間はある組織の一員である以前に、その組織の外に独立した生活をもつ自由な人間である。 また、個人は自身の人生における成功とか目的の達成に関して最終的な責任をもつ。決定権を持つのは君自身ってことだ。もちろんGDPが伸び悩むとかそうい…

std::sort は便利

先日の ABC128_B はいい感じに入れ子のソートをしたいという問題で、自分のコードは vector, multimap, set でそれぞれ別の情報をもってがんばってしまったが、解説を読んだら pair を入れ子にすればそれを sort するだけでよしなにやってくれるということを…

ABC117 C問題 反省会

Streamline これです。簡単なはずなんだけど解けなかったので反省がてら図解します。 問題設定 数直線上にM個のターゲット座標がある 上図のように、数直線上に M 個の座標があって、それらを N 個のコマですべて訪れたい。はじめにコマを置くのは手数に入れ…

Geant4 で新しい物理過程をつくる

Geant4 で新しい物理過程を入れたくて、OSSだしドキュメントも充実しているし論文も講習会資料もあるけど、どこを読めばいいのかわからない、または読んだけどわからないという人向け。 実装済みの物理過程はたくさんあるのですが、それでも未実装な物理過程…

Linux でディスク容量消費を把握する ncdu

ncdu によるスキャン結果 ncdu は du を ncurses でちょっとリッチにしたもの。 apt や yum で入ります。 root になって / に移動したあと ncdu を実行するとすぐにスキャンが始まります。 ncdu スキャン中の画面 スキャンが終わると冒頭の画像のようにリス…

C++ で依存性をどこで注入するか

オブジェクト指向設計において、オブジェクト間の依存をコードの奥深くに埋め込むのは得策ではない。しかし同時に、誰から見て依存関係がはっきりとわかるべきかは、設計者が判断すべきことである。C++ において、オブジェクトのユーザーが依存関係を見てい…

Practical Object-Oriented Design in Ruby 読書メモ

オブジェクト指向設計は、品質の高いソフトウェアを開発するためにはどう設計すべきか、という問いに対するひとつの解。適切にグルーピングされたオブジェクト同士が適切な相手とのみメッセージをやりとりする。相手が誰であるかよりも、自分が出したメッセ…

持続可能な大学研究室計算機環境を構成した

うちの研究室にあるサーバや個々のマシンは,教官と院生によって連綿とメンテされてきました。しかし,ドキュメントがほとんどないため去年は引き継ぎが大変でした。そこで,コマンドを 2,3 回叩くだけでほぼすべてのメンテができ,最低限のドキュメントでも…

HEASoft を Ubuntu 16.04 にインストール

HEASARC の HEASoft を Ubuntu 16.04 にインストールしました。 HEASARCのインストールアウトラインと、 Debian 系インストールマニュアルを参考にしました。 前者のほうが詳細なので基本的にそれを読めばあまり滞りなく進みます。 前提として、操作はすべて…

Gentoo のインストールで気をつけたいこと

研究室のPCに Gentoo をインストールしてみました。 カーネルのビルド設定などでちょっと右往左往したので、最低限気をつけたいポイントについて。 USB 最近のマザーボードはUSB端子はあってもPS/2コネクタはないことが多いです。USB 3.0、2.0両方のサポート…