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

ABC128 D Lamp

問題の解き方よりも実装のほうが大変だった問題。他の人の解き方を見て、条件分岐の少ない再実装をしました。配列の実装を1から始めるのがポイントのようです。 #include <bits/stdc++.h> using namespace std; #define int long long signed main() { int h, w; cin >> h ></bits/stdc++.h>…

ABC128 C-Switches

典型的なbit演算の問題として自分なりに整理しました。 コンテスト時には、bitの配列として処理したものを、各bitを桁とする一つの数字にすると処理が簡単になるのが、目からウロコでした。 ただそれなりに独特の考え方をするので慣れていかなければと思いま…

ARC 001 B リモコン

はじめ通貨問題のように貪欲法で解いたところ撃沈。 通貨問題では、使うコインをa,b,cと昇順に並べたときbが aの倍数、cがbの倍数であれば、貪欲法が使えるが、この問題では プラス・マイナス両側から近づくので使えないらしい。 回答をみてBFSで実装しまし…

CODE FESTIVAL 2018 Final (Parallel) C - Telephone Charge

結構難しいlower_boundですが、面白い使い方を見つけたので、使ってみました。 イテレータから値を取り出す書き方は、auto x=*lower_bound(.....)といった*を使う方法しか知っていましたが、 一旦auto it=lower_bound(.....)とイテレータ自体を変数で受け取…

M-SOLUTIONS プロコンオープン E - Product of Arithmetic Progression

最近作った剰余演算用のライブラリを試すのにうってつけの問題。 nCmは使わないけど、累乗や逆数、そしておまけで作ったnPmの計算を使っています。 計算自体はよくある手法だと思うけど、配列をコンストラクタの中で初期化するので サンプルごとにメモリの使…