競技プログラミング

AtCoder ABC 138の「E - Strings of Impurity」

はじめに AtCoder Beginner Contest 138 の「E - Strings of Impurity」問題です。 解説では、ある文字→ある文字への距離を事前計算する方法と、二分探索で解く方法の両方が紹介されてましたが、自分は二分探索で解きました。 解き方 結合後の文字は巨大なの…

AtCoder Beginner Contest 138の振り返り

はじめに AtCoder Beginner Contest 138に参加したのでその振り返り。 A,B,C,D解けて、Eは初級レベルの失敗でTLEに、、悔やまれる。 A - Red or Not と B - Resistors in Parallel Aはそのまま、Bはdoubleとか気をつけて実装する。 C - Alchemist 1回合成す…

ABC116の「D - Various Sushi」

問題概要 AtCoder Beginner Contest 116 の、D - Various Sushi。 解説や提出されたコード見ても???だったけど、自分で書いてみて理解できた。 解き方 種類ポイントのことは一旦忘れる 単にK個分、得点順にでかいものだけを食べていく 答えがこの種類数を…

ABC130の「D - Enough Array」

AtCoder Beginner Contest 130のD - Enough Array。 ポイント ナイーブに実装するとTLEになるので尺取法で計算していく。 コード typedef long long ll; int main(int argc, char *argv[]) { ll res =0; ll n,k;cin>>n>>k; std::vector<ll> v(n); for(int i=0;i<n;i++){ cin>></n;i++){></ll>…

ABC137のE - Coins Respawn

感想 AtCoder Beginner Contest 137のCoins Respawn。 自分のようなビギナーには、グラフ問題のエッセンスが詰まったような問題でいろいろ勉強になった。 ポイント Pは辺のコストとしてまとめて考えることができる 辺のコストに-1かけることで、最短経路問題…

AtCoder Beginner Contest 137 の振り返り

AtCoder Beginner Contest 137に参加したので備忘録。 急いでA〜Dまで解いた結果、パフォーマンス的には1600を超えていたので、安定して速く解けるようになると青になれるのかな。 A - +-x 実装のみのスピード勝負。 B - One Clue これまたスピード勝負。 C …

ARC097の振り返り

久しぶりにプログラミングコンテストに参加。 今回は、AtCoder Regular Contest 097 - AtCoder Regular Contest 097 | AtCoder に。 AtCoderのコンテストは初めての参加ですが、結果は、C,D解けて、E,F解けず。1回しか参加してないのでまだ灰色ですが、5回コ…

SRM 729 div1 easy MagicNumberThree - 久々の競技プログラミング

久々にTopcoderに参加しようと直近の問題を練習がてら解いてみました。 まずはeasyから。 ちなみにGreedというプラグインをいれてみましたがかなり使いやすくておすすめです。 さて問題は、"303049"みたいな文字列が渡されるので、3で割れる部分文字列の数を…

yukicoder - No.430 文字列検索

No.430 文字列検索 - yukicoder 事前に1文字〜10文字分のすべての部分文字列をカウントしてmapに入れておいた。 なんか解説みて気づいたけど想定解とは違うのか。 signed main() { string S; int M; map<string, int> mp; cin>>S>>M; for (int i=0;i<S.size();i++){ for(int j=1;j<=10;j++){ if(S.size()-i>=j) mp[S.substr(i, j)</s.size();i++){></string,>…

yukicoder - No.33 アメーバがたくさん

No.33 アメーバがたくさん - yukicoder アメーバの分裂。 分裂が衝突しちゃうものを考慮しないといけない。 こういう問題、コンテストとかで出されたらミスしまくりそう。 signed main() { ll N,D,T; cin>>N>>D>>T; vector<ll> X(N); for(int i=0;i<N;i++) cin>>X[i]; sort(X</n;i++)></ll>…

yukicoder - No.32 貯金箱の憂鬱

No.32 貯金箱の憂鬱 - yukicoder 貪欲法ですね。高い紙幣・硬貨から順に使っていく。 signed main() { int L,M,N; cin>>L>>M>>N; int res = 0; # 1000円以上は全部無視 int amount = (L * 100 + M * 25 + N) % 1000; amount %= 1000; # 100円 res += amount …

yukicoder - No.11 カードマッチ

No.11 カードマッチ - yukicoder この手のものは、一旦何も考えず全部足していって、最後に余計なものをひいていくのがうまくいくかな? set <ll> sets, setk; signed main() { ll W,H,N; cin>>W>>H>>N; for(int i=0;i<N;i++){ ll S,K; cin>>S>>K; sets.insert(S); setk.insert(K); } </n;i++){></ll>…