[{"content":"一次予選 最初の回だけ出ました あとは予定があって出られず\n二次予選 A問題 まあAの値をソートしてxにすればよい あとは適当にやったらできました\nB問題 誤読したけど、貪欲法した記憶 問題文覚えてなくてやばい\nC問題 JOIOIOIみたいな感じだと最終的にOIOIOIJになるので、OIを一つの文字としてランレングス圧縮していい感じにやればよい\nD問題 三分探索した、c++で1871secで結構焦った\nE問題 31点しか取れず、よくよく考えたら水diff下位もないくらいだった\u0026hellip;\nF問題 自明な11点しか取れなかった\u0026hellip;\n結果二次予選は、442点で通れてよかったです\nセミファイナル 1/25 講演会がとても面白かったです\n4色定理を知らなくて、最初の方あった「このグラフは何色で彩色できますか？」という問題が分からなかった\n交流会はチームに全然貢献できませんでした、ごめんなさい\nセミファイナル 2/1 前日のABCでABC3完とかいう大失態をやらかしました、3ヶ月ぶりの茶perf…\ndiscordで仲良くしてもらってる、同じ学年のK2さんとsukesanさんと合う約束をしていたので新橋駅へ、集合が9時ぐらいだったけど、早くホテルを出過ぎて8:30ぐらいに着いてしまった\u0026hellip;\n改札内にしかトイレがなくて、セブンにもなかったので、近くの図書館のトイレを借りました 警備員のおじさんに港区民じゃないけどトイレ借りていいですかと聞いたらいいですよ～と答えてくれて無事トイレに行けました 警備員のおじさんありがとうございます\nその後無事集合して、霞が関の方まで一緒に歩いて、省庁街を見ました\nいろいろ話せて楽しかったです\nその後、電車で新橋駅に戻り、一緒にマックで昼食を食べました、10:29:30ぐらいだったけど昼マックのメニューを注文できました\nSL広場に9人ぐらいセミファイナル行く方がおられたので、二人と一緒にSL広場まで行ってその方たちと会いました まだ昼食を食べていなかったようなので、二人と先にセミファイナル会場へ\n着いたのが11:30ぐらいだったけど意外と人が集まってた\nK2さんとsukesanさんと席が意外と近くてびっくり\nA問題 普通にDPすれば通りました\nB問題 宝石が買われないのは$R_i \u0026lt; S_j$か$T_j \u0026lt; L_i$の場合だけだから累積和を使えば完璧\nC問題 全然分からなかったのでとりあえずDに行き、その後部分点を回収する事に\n小課題1245しか取れず\u0026hellip; 2冪を使うのが全然分からなかった\u0026hellip;.\nD問題 とりあえず4乗のDPを書き38点をget(DPの持ち方は解説とほぼ同じだけど、頂点を通った回数の長さをNとしていたため4乗になりました)\n照らされていない頂点の最大値やこの頂点に川下りをする回数を決めて、上の頂点に渡す部分をDPで高速化して+7点\nこれ以上の高速化が思い付かなかったのでCに行き部分点を取る事に\nコンテスト後、よくよく考えたら、2乗の木DPみたいに頂点を通った回数を管理して、部分木の大きさよりも多く川下りする場合は、上の頂点から川下りしたという事にすればよいと分かった\n完全に言語化できてないです\nE問題 自明点の5点しか取れず\nF問題 問題を見ていない\u0026hellip;\n結果100-100-45-45-5-0で、295点でファイナル進出できませんでした、Dでもうちょっと頑張れたと思うとすごく悔しいです\nしっかり精進して次回はファイナルに行きたいです\n競技終了後 閉会式が終わったら、すこし回りの人たちと話して帰る事にしました\nご飯を食べているときあずさが遅延するという情報を手にいれたけど一応時間までに東京駅に付くように移動しました\n親と夜ご飯を食べて、新橋駅へ\n京浜東北に乗りました\nJOIのバッグを持った人たちがいたのですこし話しました、突然話しかけたのにやさしく接していただいてありがとうございます\nさきほどの方たちは、秋葉原まで行ったそうですが、私はあずさに乗るので東京駅で降りました\n家族へのお土産を買って、あずさに乗りました 遅延しなかったので結構ぎりぎりでした\nとても楽しかったです\n運営の方、会ってくれた方、話してくれた方、ありがとうございました\n誤字あったらごめんなさい\n","date":"2026-02-02T20:07:30+09:00","image":"/blog/img/IMG_20260201_083425383_HDR.jpg","permalink":"/blog/p/joi2025/2026%E5%8F%82%E5%8A%A0%E8%A8%98/","title":"JOI2025/2026参加記"},{"content":"はじめに 結果はABCE4完4ペナでperfは1143でした\n+16でレートは1009です ついにレート1000を越えたやったーー\nえーはいEでヒューリスティック嘘解法を投げて4ペナ食っちゃいましたアハハ(笑えない)\nperfが40も上がっていたそう\u0026hellip;\nコンテスト中どうだったか 開始 atcoder-cliが使えなくて1分半ロス\n開始2分30秒 AをAC\n開始5分42秒 BをAC\n開始8分47秒 CをAC\nCの方が実装が簡単だった\n開始38分 Eに山登り嘘解法を投げる もちろんWA 面白すぎ\n1分後パラメータ調整したのを投がる もちろんWA\n開始47分 こりずにビームサーチを投げる TLE\nパラメータ調整してもういちど投げる もちろんWA\n開始53分 そういえば類題解いた事あったのでそれがふと頭に浮かんで実装したらAC(さっきの20分は一体\u0026hellip;)\n離脱 映画を見る 「海賊と呼ばれた男」面白いですね\n終了 Dが有向グラフという事は気付けなかった 気付いていたとしても解けなかったと思う\nそんじゃ一問ずつ感想書きますか\nA問題 はい\n最近のと比べたら比較的簡単だったような気がする\nB問題 実装めんどい まあAC\nC問題 差分取るやつ 最近よくでる気がする\nD問題 歯が立たない～\nE問題 ヒューリスティック嘘解法は我ながら面白すぎですね\n最後に 5完したかった\u0026hellip;.\n入水まであと191がんばるぞ\nコメント欄 ","date":"2025-06-16T21:37:57+09:00","image":"/blog/img/abc410header.png","permalink":"/blog/p/abc410%E6%8C%AF%E3%82%8A%E8%BF%94%E3%82%8A/","title":"ABC410振り返り"},{"content":"はじめに 久々にhighest更新して気分がいいです\n結果はABCD4完26分0ペナでした\nperfは1351でした やったー\nコンテスト中どうだったか 開始1分 AをAC\n開始2分30秒 BをAC\n愚直で十分\n開始19分 Cが解けていなかったので(緑コーダーさんその問題灰diffですよね?)Dから先に解くことにした\nまあAC\n開始26分 CをAC(緑コーダーさん以下略)\nEをすこし考察する\n$O(n^2)$のdpは思いつくけど無理そうだから貪欲なのか\n解けずそうになくアニメを見る\n椅子を温める以前にアニメを見た キングダム面白い\nコンテスト終了 いやE難しい\u0026hellip;\nA問題 標準ライブラリは正義\nB問題 愚直で通した\nC問題 逆順で差分をとっておけばいけた\ndpでもできそう\nD問題 setにタプルを入れてゴリ押し\nbitで管理は二次元だと難しいので\u0026hellip;(思考力弱すぎだろ)\nE問題 貪欲法なのは分かったけど組み立てられなかった\u0026hellip;(それ以前にキングダム見るな)\nさいごに 次は瓦を取りたいです\nAJLの順位が上がらない\u0026hellip; やばい\n","date":"2025-05-27T20:45:43+09:00","permalink":"/blog/p/abc407%E6%8C%AF%E3%82%8A%E8%BF%94%E3%82%8A/","title":"ABC407振り返り"},{"content":"はじめに 結果は、順位が314位(円周率だ)でperf1585出してHeu入水しましたー🎉🎉\n解法はPが高い物を2つ選ぶ方法を使いました\nコンテスト後、パラメータ調整してみたら、perf1701程度出るらしくショックです\nGPTに手伝ってもらった項目 スコア計算関数 以上です\nDPでできるかなーと思いましたが、時間を考えGPTを使いました\nコンテスト中どうだったか 開始 開始1分でトイレに行きたくなり10分程度トイレに篭る\n開始22分 本番952位相当の適当解を投げる\n開始1時間30分 スコア計算関数をGPTに作らせたので焼きなましをするコードを書くがうまくいかない\u0026hellip;\nふと$P$が高い物を2つ選びMを半分に分ける解法を思いついたので実装を始める\n開始1時間47分 先述の解法を実装し、本番427位相当の解法を投げる\n開始2時間10分 バグがあったので修正したコードを提出した 300000点程度スコアが上った\n開始2時間16分 先程のコードにバグが残っていたので修正\nこれで本番347位相当\n開始2時間57分 Pを2つ選ぶ通りを増やしたコードを提出\nいろいろこれから30分程度改善を続け、最終提出で本番314位まで上げた\nコンテスト後 もう片方のMに移動する確率を5%にする提出を参考に、提出してみたところ本番248位相当まで上がりました\n最後に 青perfが取りたかったです\nHeu入水できてうれしいです\nコメント欄 ","date":"2025-05-19T12:49:57+09:00","image":"/blog/img/ahc047header.png","permalink":"/blog/p/ahc047%E6%8C%AF%E3%82%8A%E8%BF%94%E3%82%8A/","title":"AHC047振り返り"},{"content":"はじめに なんで誤読するの(自己責任)\nなんで2ペナするの(実力の問題)\nなんで実質30分かけてしまうの(実力とタイピングと注意力の問題)\n結局ABCD4完2ペナでperfは1005でした\nコンテスト中どうだったか 開始1分38秒 標準入力を間違えたが普通にAをAC\n開始3分28秒 実装で迷ったがBをAC\n開始5分24秒 CをAC 簡単でよかった\n開始14分 Dで1ペナ 誤読してしまった\n開始20分 DをAC よく分からないdijkを書いて更に1ペナ食ってしまった\n椅子を温める 終了してしまった Eが解けへんかった\nそんじゃ一問ずつ感想書きますか\nA問題 はい\nB問題 実装を迷ったがはい\nC問題 $\\sum_{0\u0026lt;i\u0026lt;=N} a_i(\\sum_{i \u0026lt; j \u0026lt;= N} a_j)$の形に変形できるので累積和を使って一発\nBITを使った方が簡単だった\nD問題 経路復元する必要もなく、移動時に移動した方法の逆の方向に矢印を付ければOK\nE問題 解説見たら意外とシンプルでショック\n最後に レートが回文数になってしまいました\n次はhightest更新したいです(更新できたら3ヶ月ぶりです(フラグやろ))\n以上です\n","date":"2025-05-14T19:52:16+09:00","image":"/blog/img/ABC405header.png","permalink":"/blog/p/abc405%E6%8C%AF%E3%82%8A%E8%BF%94%E3%82%8A/","title":"ABC405振り返り"},{"content":"はじめに なんかobsidianが流行っているようなので、使ってみてます\n以前2回導入に失敗したobsidian.nvimが導入できて満足です！！\nさて雑談はここまでにしましょうか\nCで嘘解法連発して4ペナ食って最悪です\n結果は、ABCD4完4ペナ62分でした\n一応perfは緑中位出たので一安心と言いたい所ですが欲を言えば水perfが欲しかったです(実力不足)\nDはなぜか$N^3$解法が思いつかず$(N^2)^2$で通してしまいました\nコンテスト中どうだったか 開始1時間前 眠かったので紅茶を500ml程度がぶ飲みした\n開始1分 AをAC\n開始5分 BをAC 時間掛けすぎました\n開始6分 次数2の解法で開始20分までやってみたけどACできなかったのでDを見ることに\n開始54分 考察で沼りましたがノーペナでDをACできました($N^3$解法が頭から抜けていたのは一体\u0026hellip;\u0026hellip;)\n開始62分 Cで連結であるかどうかのコードを追加したら意外にもACでびっくりです\n4ペナ食らいました\nそのまま時間が過ぎてゆく Eでいろいろ試しましたが解けませんでした\nA問題 計算量考慮しないでlistのremove使いました\nB問題 二次元配列の回転はやっぱりライブラリにしないとです\nC問題 二つのサイクルグラフがある場合を考慮できなかったのは実力不足でした\nD問題 $N^3$解法が頭から抜け落ちていましたが、ABC402-Fで半分全列挙が出たのを覚えていて良かったです(未AC)\nE問題 DPの方法がよく分かりませんでした\n最後に AJLで中2部門で11位に落ちてメンタルぼろぼろです\n次こそは\u0026hellip;\u0026hellip;.(これ何回言ってんねん)\nコメント ","date":"2025-05-08T19:45:59+09:00","image":"/blog/img/ABC404header.png","permalink":"/blog/p/abc404%E6%8C%AF%E3%82%8A%E8%BF%94%E3%82%8A/","title":"ABC404振り返り"},{"content":"はじめに trie木は枯れてるし、貪欲は弾かれました 結果はABC3完5分で、perfは緑中位で瓦復活だけど満足は全然していないです 水パフォ欲しかった\u0026hellip;\u0026hellip;\u0026hellip;(実力)\nコンテスト中どうだったか 私情が混ざっているので飛ばしてもかまいません\n開始9時間前 従兄弟とスノボ行って僕が寒気と吐き気がしたので帰宅することになった\nなにか食べ物があたったぽい\n開始6時間前 帰宅 気分が良くなる\n開始53秒 AをAC\n1-indexed変換で頭が混乱したけど問題なし\n開始3分22秒 BをAC\n4重ループでも余裕なのでそうした\n開始5分40秒 CをAC\nABC-Cで灰diffのクエリ系って感じだった\n開始12分 Dに適当な貪欲を今日初のこんばんWA\n開始75分 Eを提出するがWA trie木が枯れてる\n時間が過ぎてゆく 瓦が復活しただけましかって感じでした\n一問ずつ感想書きますか\nA問題 内包表記\nB問題 面倒臭いことはやらず素直に4重ループ\nC問題 適当にsetとlistで権限管理すればいい\nD問題 普通に嘘貪欲を投げ撃沈\nDPだろうなとは思っただが通り過すケースの対処が分からなかった\n分ければいいのか\nE問題 考察は大体合っていたんだがバグとTLEが分からんかった\n最後に 解けるという確証がない限りDから動くムーブはしない方が身のためです(ソースは私)\n次こそは\u0026hellip;\u0026hellip;\u0026hellip;\nコメント欄 ","date":"2025-04-28T16:24:24+09:00","permalink":"/blog/p/abc403%E6%8C%AF%E3%82%8A%E8%BF%94%E3%82%8A/","title":"ABC403振り返り"},{"content":"初めに 久し振りに振り返りを書こう(いつまでサボったんだ こいつ)\n結果は3完wwwwwww\n瓦割れwwwwww(それはないだろwwww)\nそれも899(微妙すぎやろ)\nコンテスト中どうだったか 開始 D見よっと\nなるほど $\\frac {N(N-1)}{2}$から平行であるものの数を引けばいいのか\nふむふむ$|a_x - a_y| = |b_x - b_y|$なら平行なのか($(a_x + b_x) \\mod N = (a_y + b_y) \\mod N$ということと同値ということに解説見るまで気づかなかったアホは私です)\n分からんのう どうしても$N^2$になってしまう\nまいっか\nとりあえずAから解こっと(20分溶かした)\n開始30分 難無く?A-B-Cを解いた 完全たるムーブ失敗\nEに賭けるか\nふむふむ期待値DPだな やけにNが少ないな\n複数回使うことが可能だから品物を増やせばいいな\nダブるのかbit DPは面倒だし、適当に対策しよ(おいおいおい bit DPはどこなのかよ) サンプルも合わず時間が過ぎてゆく\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;.\n終了 茶パフォの屈辱こんな感じでした\n終了後 discordで感想戦をしていた\n周りが頭良過ぎて肩身が狭かった\n1問ずつ感想書きますか\ndiffの値はproblemsのdiffではないので誤差があるかもです\n宣伝 みんなでワイワイ競プロの事を話したりしていて、楽しいのでぜひ来てください A問題 diff 41 20分ロスしてからのスタートだったけどはい\nB問題 diff 88 deque使うだけ\nC問題 diff 499 $\\sum_{1\u0026lt;=i\u0026lt;=N} K_i \u0026lt;= 3 \\times 10^5$だったので適当にやった\nD問題 diff 940 $|a_x - a_y| = |b_x - b_y|$なら平行ということは分かっていたのになんで$(a_x+b_x) \\mod N = (a_y + b_y) \\mod N$が分かならかったのだろう\u0026hellip;\u0026hellip;..(私に才能がないから)\nE問題 diff 1447 bit DP面倒なので工夫しようとしたらがっつりbit DPだったけど遷移がそもそも上手くいってなかったので問題なし\n最後に 次こそは\u0026hellip;.. コメント欄 ","date":"2025-04-22T16:30:22+09:00","permalink":"/blog/p/abc402%E5%8F%82%E5%8A%A0%E8%A8%98%E9%8C%B2/","title":"ABC402参加記録"},{"content":"問題へのリンク\n考察 mexだから、sortedsetあればいいよな、だけど制約が、$A_i \u0026lt;= 10^9$とか書いてある\nどうしよう\nここで解説を少し見る\nそっか、要素は、最大N個しか失なわれないから、要素は、0からN+1まで準備すればいいのか\nで普通にmexの実装をしてACした\nACコード いつもpython使ってるけど気分で、C++で解いていた コンテスト中じゃなくて良かった\n#include \u0026lt;bits/stdc++.h\u0026gt; #include \u0026lt;map\u0026gt; #include \u0026lt;set\u0026gt; using namespace std; // 型テンプレ using ll = long long; using ull = unsigned long long; // マクロ #define rep(i, n) for (ll i = 0; i \u0026lt; (int)(n); i++) #define all(a) (a).begin(), (a).end() const ll INF = pow(10, 18); const string upperlist = \u0026#34;ABCDEFGHIJKLMNOPQRSTUVWXYZ\u0026#34;; const string lowerlist = \u0026#34;abcdefghijklmnopqrstuvwxyz\u0026#34;; ll N, Q; map\u0026lt;ll, ll\u0026gt; D; set\u0026lt;ll\u0026gt; L; int main() { cin \u0026gt;\u0026gt; N \u0026gt;\u0026gt; Q; vector\u0026lt;ll\u0026gt; A(N); rep(i, N) { cin \u0026gt;\u0026gt; A[i]; D[A[i]]++; } for (ll i = 0; i \u0026lt;= N + 100; ++i) { if (D[i] == 0) { L.insert(i); } } while (Q--) { ll i, x; cin \u0026gt;\u0026gt; i \u0026gt;\u0026gt; x; i--; D[A[i]]--; if (D[A[i]] == 0) { L.insert(A[i]); } A[i] = x; D[x]++; if (D[x] == 1) { L.erase(x); } cout \u0026lt;\u0026lt; *L.begin() \u0026lt;\u0026lt; \u0026#34;\\n\u0026#34;; } } コメント欄 ","date":"2025-02-07T18:49:27+09:00","permalink":"/blog/p/abc330-e%E3%82%92%E8%A7%A3%E3%81%84%E3%81%9F/","title":"ABC330-Eを解いた"},{"content":"問題へのリンク\n考察したこと 累積和dp?だと思った まずSが2000以下というのが怪しいし、$2000/3 = 666.666\u0026hellip;$なので、あとは、うまいこと遷移させればいいと思った 累積和のi-3の値を貰って、modを取れば遷移はOK あとは、dp配列のインデックスがSの所の総和をMOD取った値を出力すればOK\n普通に一次元配列で解く解法もあるみたいだけど、二次元配列で解いた\nACコード ライブラリは抜粋してあります ライブラリ全文\nS = ii() MOD = 10**9 + 7 dp = create_array2(701, S + 1, 0) dp[0][0] = 1 for i in range(700): acc = list(accumulate(dp[i])) for k in range(3, len(dp[0])): dp[i + 1][k] += acc[k - 3] dp[i + 1][k] %= MOD ans = 0 for i in range(len(dp)): ans += dp[i][S] ans %= MOD print(ans) コメント欄 ","date":"2025-01-14T11:33:04+09:00","permalink":"/blog/p/abc178-d%E3%82%92%E8%A7%A3%E3%81%84%E3%81%9F/","title":"ABC178-Dを解いた"},{"content":"問題へのリンク\n考察したこと 使った場所は、必要になったら使うという貪欲で求めることが、できるので(公式解説の丸パクリ)あとは途中持っている最大値の最小値を求めるだけ そちらは、imos法で、できるためあとは、ポーションをstackで管理すれば、OK\n計算量は$O(N)$となり全然間に合う、ていうか、現在の環境だと、間に合わないとおかしい\nACコード ライブラリは抜粋してあります ライブラリ全文 変数名がゴミすぎてすみません\nN = ii() data = [0] * N D = defaultdict(list) ans = [0] * N T = [] for i in range(N): t, x = il() T.append(t) if t == 1: D[x].append(i) elif t == 2: if len(D[x]) == 0: print(-1) exit() data[D[x][-1]] += 1 data[i] -= 1 ans[D[x][-1]] = 1 D[x].pop() ns = [] for i in range(N): if T[i] == 1: ns.append(ans[i]) print(max(list(accumulate(data)))) print(*ns) 感想 novistepsでstackの問題として見つけたけど、面白かった\nコメント欄 ","date":"2025-01-02T16:59:39+09:00","permalink":"/blog/p/abc333-e%E3%82%92%E8%A7%A3%E3%81%84%E3%81%9F/","title":"ABC333-Eを解いた"},{"content":"問題へのリンク\n考察したこと 普通に$N\u0026lt;=400$だから、普通に考えられるのは、ワーシャルフロイド法だなと思った。 で橋を渡る部分は現在地を、取っておけば全然大丈夫だからこの部分はいい\nここで少し解説を見た、順列全探索を使用するみたい\nあとはbit全探索使えばいいなと、思って実装したらACした。\nACコード ライブラリは抜粋してあります\nN, M = il() G = create_array2(N, N, INF) L = [] for i in range(N): G[i][i] = 0 for _ in [0] * M: u, v, t = il() u -= 1 v -= 1 G[u][v] = min(G[u][v], t) G[v][u] = min(G[v][u], t) L.append((u, v, t)) Q = ii() for k in range(N): for cur in range(N): for nxt in range(N): G[cur][nxt] = min(G[cur][nxt], G[cur][k] + G[k][nxt]) def solve(): K = ii() B = il(-1) result = INF for p in permutations(B): for bit in range(1 \u0026lt;\u0026lt; K): cur = 0 ans = 0 for i in range(K): if bit \u0026amp; (1 \u0026lt;\u0026lt; i): ans += G[cur][L[p[i]][0]] + L[p[i]][2] cur = L[p[i]][1] else: ans += G[cur][L[p[i]][1]] + L[p[i]][2] cur = L[p[i]][0] ans += G[cur][N - 1] result = min(result, ans) return result for _ in [0] * Q: print(solve()) 最後に これの部分問題、キーエンス2024のDみたいな感じだったな この場合ワーシャルフロイドで拡張したけど、順列全探索+bit全探索は結構出てくるんだなって思った\nコメント欄 ","date":"2024-12-19T14:57:07+09:00","permalink":"/blog/p/abc369-e%E3%82%92%E8%A7%A3%E3%81%84%E3%81%A6%E3%81%BF%E3%81%9F/","title":"ABC369-Eを解いてみた"},{"content":"hogehoge test\n$$ a = 1 $$\nprint(\u0026#39;hello world\u0026#39;) 警告 This is a warning notice. Be warned!\n","date":"2024-12-16T20:26:05+09:00","permalink":"/blog/p/helloworld/","title":"Helloworld"}]