2019-08-01から1ヶ月間の記事一覧

ソフトウェアエンジニアリングコミュニティの未来をどうしたいのか

昨日あるカンファレンスの前夜祭に行ってきたんですが、そこで首をひねるトークがありました。 聞いていてまず思ったのが「ここはそういうことを話す場ではないだろうな」でした。このカンファレンスは技術的な縛りは何もなく、また前夜祭でのトークは少し短…

第一回日本最強プログラマー学生選手権-予選- A,B 反省会

提出へのリンク 実際に時間内に提出したのは A だけでした。 A は全部調べれば良いです。 B は途中までは色々工夫して調べていましたが、高々 2000 個の数列なので 数列内での転倒数と、 数列を 2 組並べたときの、後ろの数列から見た前の数列に対する転倒数…

AtCoder Beginner Contest 119 A - Still TBD

問題へのリンク 解説で学びがあった。 2019/04/30 というような、数字の桁数とセパレータまでフォーマットが決まっているような文字列が入力される場合には、セパレータを char で受けることで stoi などの関数を使わなくても数字部分を直接 int などで受け…

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>…