ぬるぬるの競プロ日記

コードをぬるぬる書きたいです。

AtCoder Beginner Contest 127 D - Integer Cards

考えたこと: ・愚直解として以下のようなものがある。 vectorを1つ用意する。(初めにAi(i=1~N)を入れておく。) 各jに対して、vectorにBj枚、Cjを入れる。 vectorをsortする。 大きい方からN枚とる。 このN枚は明らかに最大値をとり、このような…

AtCoder Beginner Contest 127 F - Absolute Minima

コンテスト中はEに時間を全て使ってしまいました。 自分の理解した範囲で解説していくので、間違いなどありましたら指摘して頂ければ 嬉しいです。 考えたこと ・bは本質ではない!順番に足していけばよい! ・絶対値の和の関数の最小値を取る座標は、傾き…

AtCoder Beginner Contest 126 F - XOR Matching

考えたこと: ・値の等しい任意のai,ajに対して題意の条件が成立するので、構築できるならば対称性がありそう。 ・もしかして、K==0の場合にしか構築できないのでは?? ー>場合分けして提出。 ー>そんなことなかった。 ・紙上で実験をし続けていると…

AtCoder Beginner Contest 126 E - 1 or 2

考えたこと: ・Zは定数なので、ほとんど関係ない。(MOD 2をとって終わり) ・Ax1+Ay1のMOD 2が解っているとき、、片方の値が判明すればもう片方も判明する。(0か1しかないので) ・AがわかればBもわかるという関係を連結と呼ぶならば、2つの…

AtCoder Beginner Contest 126 D - Even Relation

考えたこと: ・二点間についてすべて考えてしまうとO(N^2)で間に合わなくなる。 ・距離の偶奇しか問われていないので、距離の大きさは本質ではない。 ・こういう問題は根付き木にして、根を起点にして考えるとよいことが多い。 図を書いてじっと眺めてみる…

ABC125

C - GCD on Blackboard 考えたこと: ・双方向から累積gcd ・すべて素因数分解してごちゃごちゃ (バグったのでDに行きました。AC出来ませんでした・・・) 解説: この問題を言い換えると、「N個の要素からN-1個選んだ時、GCDが最大になるような…

ABC124 D - Handstand

考えたこと ・010を[1,3]で反転させると101、[2,2]を反転させて 111 とできるが、 これは左の0と右の0を別々に反転させることと同じっぽい。 (1を跨いで反転させるのは無意味そう) ・連続する0を反転することだけを考えればいいのではないか? ・(連…

ABC122 D - We Like AGC

考えたこと: 1)メモ化再帰 2)包除原理で解く。 -> 2は厳しそう。 -> 重複が滅茶苦茶になりそう。 メモ化再帰で実装する。 どうやって? dp[i][a][b]:=i番目まで見ていて、i-2番目はa,i-1番目はbの時の数列の個数。 (ここで、A=0,B=1,C=2,T=3と対応させる…

AtCoder Beginner Contest 120

皆さま、お久しぶりです。 競プロを再開したいと思います。 C - Unification 考えたこと: (これやったことあるんだけど忘れたので、もう一度解く・・・) ・再帰でいじる。 ー>ダメ。計算が間に合わない。 ・貪欲 ー>前から順番に消せるなら消していく方…

AISing Programming Contest 2019 C - Alternating Path

考えたこと: ・メモ化再帰 ー>重複が取り除けない・・・ ー>偶奇で場合分けしたりするのだるすぎる・・・ ・数え上げていく ー>これも微妙・・・ ・組み合わせの計算に持ち込む。 ー>どうやって? 左端上の点を固定して考えようとしていましたが、これ…

CADDi 2018 for Beginners

A:12/22 解法: 各桁毎にチェックしていく。 整数Nの1桁目はN%10に等しい。 2桁目は(N/10)%10に等しい。以下同様 whileで実装する。 (わからない場合は確かめてみると良い) #include <bits/stdc++.h> using namespace std; #define int long long signed </bits/stdc++.h>…

AGC029 A - Irreversible operation

初めに思いついたこと: ・前からシミュレーション ->何往復もするのでかなりの計算量になる。(N<=10^5) ・反転数っぽい。 ー>BITか? ー>ダメ。AGC-AでBITが出るわけない。(ぐっと我慢する) (もっと楽な方法があるはず) 実験を進…

ABC115 D - Christmas

初めに思いついたこと: ・N<=50と小さい。 ・漸化式を用いて、NバーガーのPとBの総数と、NバーガーのPの総数は表せる。 (前者をnum[N],後者をf[N]と表す。) ・後ろから数え上げればいいな。 ー>シミュレーションか? ー>シミュレーションは厳…

ABC115 C - Christmas Eve

初めに思いついたこと: ・最小値だから二分探索では???(条件反射) ー>問題をよく見ると、そんな必要はない。 ・N=10^5だからsortして考えて良いな。 ー>sortしたら尺取り法の要領で求まるのでは? ー>Kが決まっているから尺を取る必要もない…

ABC114 D - 756

初めに思いついたこと: ・100!を愚直に扱うのはまずい。(150桁くらいある) ・約数の個数なので、素因数分解した値を考えれば良さそう。 (この時、100!を素因数分解しても、素因数の個数は(2^10)^50≒10^150よりせいぜい500…

ABC114 C - 755

初めに思ったこと: ・全探索は難しそう。O(N)=10^9 ・桁DPかな? ・ずるずると桁DPの沼にハマる コンテスト後: bit全探索を思いつく。 具体的には、3,5,7を0,1,2に対応させてbit全探索。 計算量はO(10*10*3^10)≒10^6で、間…

ブログをはじめました。

競技プログラミングの解説ブログを書いてみることにしました。 私はプログラミングを知らない状態で競プロを始めた人間です。 なので、プログラミング未経験者の方々が競プロを始めたときに、私の軌跡を参考にできるようなブログが書けたらなと思います。 あ…