7K12 blog

猫でも分かる何か

2020-01-01から1年間の記事一覧

ABC168に参加した感想

A3分、B2分、C14分、D21分、の4完でした。初めてパフォ1200超えました。 A - ∴ (Therefore) https://atcoder.jp/contests/abc168/submissions/13300576 頑張ってタイピングします B - ... (Triple Dots) https://atcoder.jp/contests/abc168/submissions/132…

ABC139 E - League

https://atcoder.jp/contests/abc139/submissions/11590159 これでdif12Kとかマ?あまりに天才的な実装、文章から構造を整理できる気がしない。 試合テーブルの各行について試合の順番が前後してはいけない。そういうわけで、各試合に名前と矢印を付けるとグ…

GigaCode 2019 E - 車の乗り継ぎ

https://atcoder.jp/contests/gigacode-2019/submissions/13239335 これでdif12Kなのか。天才しかいない。 初期値は all(dp)=ldbl_max, dp[0]=0 繰り返しは rep(i, 1, N+2) rep(j, 0, i) 更新は dp[i] = min(dp[i], dp[j] + (ld)(car[i].x - car[j].x) / (ld…

GigaCode 2019 D - 家の建設

https://atcoder.jp/contests/gigacode-2019/submissions/13237369 長方形の全組み合わせは 長方形の全ての組み合わせについてT=土地の値段合計+面積×Kを計算し、Tが所持金V以下になる長方形のうち最大の面積が答えになる。長方形は座標P1からP4の組み合わせ…

ABC138 E - Strings of Impurity

https://atcoder.jp/contests/abc138/submissions/13182121 index[l, r]の要素数は半開区間[l, r+1)で考えると(r+1)-lで計算できる 例えば、T[2]=rをSから検索する方法を考える。これを検索するにはT[1]=hの情報が大事になる。T[1]=S[4]=hだとすると S[4]以…

パ研合宿2019 D - パ研軍旗

https://atcoder.jp/contests/pakencamp-2019-day3/submissions/13169571 DP初期値は0 DP繰り返しはrep(i, 0, N) rep(0, j, 5) DP更新はDP[i][R] = min(DP[i-1][B], DP[i-1][W]) + count[i][R]など DP出力はmin({DP[N-1][R], DP[N-1][B], DP[N-1][W]}) 入力…

ABC137 E - Coins Respawn

https://atcoder.jp/contests/abc137/submissions/11045565 最小値でなく最大値を求める場合、辺コストの符号を逆にしてグラフアルゴリズムに投げる 上記に加え、探索して得られた出力(最小値)の符号を逆にして答えとする 最大値は「符号の反転を2回する」…

EDPC R - Walk

https://atcoder.jp/contests/dp/submissions/13115881 行列の掛け算は計算量 繰り返し二乗法を使うと行列累乗(K乗)がになる 隣接行列のK乗⇔有向グラフ距離Kの経路組み合わせ数と暗記する 以上、解説終わり(ぇ 正直、行列累乗を理解したとしても凡人に応用…

ABC132 E - Hopscotch Addict

https://atcoder.jp/contests/abc132/submissions/11351529 modグラフとでも暗記すると良いかもしれない。 グラフの頂点数を3倍に増やす⇔結果を格納する配列の次元を増やすことで実現 上記に合わせてqueueもpair<ll, ll>にすると実装が楽 結果を格納する配列の初期値</ll,>…

ABC131 E - Friendships

https://atcoder.jp/contests/abc131/submissions/10950261 グラフアルゴリズムを使うわけではないので無勉でもワンチャン実装できる。 ウニグラフは距離2の頂点がn-1個できる (組み合わせは個) まず、距離2の組み合わせは真ん中の緑を除く頂点すべてを使っ…

EDPC Q - Flowers

https://atcoder.jp/contests/dp/submissions/12909348 in-place DPというやつらしい。 メイン条件 + index条件 → セグメントツリーにバラバラに入れる + RMQ (Range Max Query) 逆の逆の操作は同値「背が高い∧indexが減少」を抜く⇔「背が低い∧indexが増加」…

ABC128 E - Roadwork

https://atcoder.jp/contests/abc128/submissions/12875865 std::setのinsertと二分探索、removeが便利。 工事座標Xに到達するのにX秒かかることから逆算する。工事範囲[S-X, T-X)で二分探索してスタート時間Dの人が工事に引っかかる範囲を対応させる。ただ…

ABC116 D - Various Sushi

https://atcoder.jp/contests/abc116/submissions/9809190 数学的要素は多くないが、dif16Kなのでデータ構造の扱いが難しい。 選択済み、未選択を高速に判別するためbool型配列とprioty queueに予めコンテナを分割するテクニック 美味しさが単調減少するため…

ABC166に参加した感想

A1分、B6分、C10分、D50分、の4完だった。 1日の勉強量が少なすぎるのかもしれない…精進計画を見直すべきと考えている…。 A - A?C https://atcoder.jp/contests/abc166/submissions/12721410 テストケースが7個もあるのが不思議。 B - Trick or Treat https:…

ABC165に参加した感想

A3分、B15分、の2完でした。 プログラミング歴3日の人と同じパフォーマンスです。自殺しようと思います。 A - We Love Golf https://atcoder.jp/contests/abc165/submissions/12657284 dif1000くらいだと思います。AとBの範囲がK以上あれば必ずKの倍数になる…

ABC126 E - 1 or 2

https://atcoder.jp/contests/abc126/submissions/12464663 集合の個数はunion-findとset.insert(uf.find(Ai))で実現できる。 計算量は カードの数字が偶数と奇数に分かれるので、全部で4パターン列挙してみる。すると、Ax+Ay+ZのZが偶数でも奇数でも片方の…

ABC146 E - Rem of Sum is Num

https://atcoder.jp/contests/abc146/submissions/12441749 青dif問題は天才解法すぎる… 要素の和・余りということで、とりあえず累積和のMODを取ってみる。 MOD([R, L]の総和) = MOD(累積和R - 累積和L) = MOD(indexR - indexL) が成立すれば良い(indexR -…

ABC164に参加した感想

A2分、B5分、C2分、の3完だった。凡人なので一生fizzbuzzしか書けない虚しさ。 世の中7割以上の人間がfizzbuzzしか書けないと考えると仕方ないのか…。 A - Sheep and Wolves https://atcoder.jp/contests/abc164/submissions/12351154 if文を書く。 B - Batt…

Educational DP Contest P - Independent Set

https://atcoder.jp/contests/dp/submissions/12329034 初期値はall(dp)=1 繰り返しはDFSの再帰 漸化式はdp[i][stW] *= (dp[i][stB]+dp[i][stW]); / dp[i][stB] *= dp[i][stW]; 最終目標はdp[0][stW] + dp[0][stB] 親が白なら子は白と黒の両方あり得る。親が…

ABC100 D - Patisserie ABC

https://atcoder.jp/contests/abc100/submissions/9797243 サンプル3が分かりやすい。 綺麗さ、旨さ、人気、それぞれ±あるので全通り全探索して最も値が大きかった組み合わせを採用する。 ある最適な選び方をしたときの答えがans=|Σx|+|Σy|+|Σz|で,その時Σx…

Educational DP Contest O - Matching

https://atcoder.jp/contests/dp/submissions/10980341 ビット全探索をする 男[i]に対してnCi全通りの更に男女[i][j]=1になってるj通りのループ 制約が21しかないのでビット全探索が出来そうと推測できる。男性[i]までにマッチングが成立した女性の組み合わ…

ABC162に参加した感想

A6分、B10分、C3分、D60分、の4完だった。 間違えてC++でなくCで提出したため、CEになってABの提出が遅れた。 A - Lucky 7 https://atcoder.jp/contests/abc162/submissions/11801855 問題文に答えが書いてある。 B - FizzBuzz Sum https://atcoder.jp/conte…

ABC108 D - All Your Paths are Different Lengths

https://atcoder.jp/contests/abc108/submissions/9690709 dif1800なので数学的考察力が必要、難しい。 各頂点をビットと考えると2進数で表現できそうという気持ちになる。頂点[0]から頂点[19]まであるのでで若干足りないが、とりあえずなら各頂点を0との両…

Educational DP Contest N - Slimes

https://atcoder.jp/contests/dp/submissions/11718958 一見どんな順番で合成しても同じように感じるが、それだと問題にならないので合成する順番によって答えに差が出る(ぇ 他人の解説を見るまで気づかなかったが、最初に足したものが何度も足されるため、…

ABC150 D - Semi Common Multiple

https://atcoder.jp/contests/abc150/submissions/15845505 偶数 は にする 小数を整数にする → を素因数分解したとき因数2の個数が全て等しい必要がある のlcmだが、偶数倍はカウントしないので答えは約半分の個数になる 青difなので数学的センス必須。まず…

ABC136 E - Max GCD

https://atcoder.jp/contests/abc136/submissions/11077726 diff1600を超えると数学的素養がないと考察を進めるのが厳しい。 理解はしたけど一生出来るようにならないという気分になった。 各操作をしても合計は不変 答えMはの約数 約数の個数は対数程度に収…

Educational DP Contest M - Candies

https://atcoder.jp/contests/dp/submissions/10545854 子供たちが飴を分け合うと言うと重複組み合わせっぽく見えるが、重複組み合わせだとDPが書きづらいので子供i-1から子供iに遷移するとき飴jがどうなるかというDPで実装する。このとき、K個の飴を配ると…

パナソニックプログラミングコンテスト2020

https://atcoder.jp/contests/panasonic2020/submissions?f.User=tkr987 根号の計算すら出来ない人間に価値なし。情けない。 直近5回のコンテストで3回も1年前と変わらないパフォとか冗談でなく虚無でしかない。 A - Kth Term https://atcoder.jp/contests/p…

ABC134 E - Sequence Decomposing

https://atcoder.jp/contests/abc134/submissions/10792162 二分探索の応用範囲が広すぎて困る。 分解数最小の増加部分列を作るという処理は、小さい積み木の上に大きい積み木を積み上げていくイメージになる。このとき、なるべく積み木の列が少なくなるよう…

重み付きUnionFind木

重み付きUnionFind(ポテンシャル付きUnionFind)は差分制約系 (牛ゲー) の処理が出来る。 Union(x, y, 10); Union(y, z, 20); を実行すると Diff(x, z) の戻り値で30が返ってくる。 この性質を利用するとABC087Dなどがライブラリをコピペするだけで解ける。…