互除法活用した惜しくてエグい24Bを共有した。書く方法も自分のやつは変な関数だった。規則認識が違うんだと思ってたけどそうではなかった。真ん中を回収してから外側、とするほうが壁でごまかせるということ。単独worstは抜けたけど30は遠いなあ。規則認識というかパーツ活用が見にくい。経路を共有したらmisakiさんがサクッと抜き去ってすごい。同じ解かと思ったらちょっと違うらしい。経路認識もっと考えたい。一段階関数を噛ませるとよい。壁使ってるとこういうのが良いことが多い。wwvwwさんが数値解でめちゃくちゃびっくりした。乱歩マスターって感じの解法。長文よりも試せるものが多いので困る問題たち。違う経路だったけど縮めるのは苦労しそうだ。右上から取るのと真ん中で空打ちしてるのが違った。misakiさんとは経路がちょっと違った。これも変な答えありそう。ヒントに従ったというmisakiさんともちょっと違った。左端の隙間の存在忘れてた。数値で攻めると良いらしい。a(A,B):A/B歩a(A+3,B+1)的なのが想定回。192と違ってAもうごくので、一つの関数にしても効果が薄い。pastaさんは四歩かさ増しして別の式に当てはめているとのこと。いうのをやれば154の時の面倒なことがなくなることを教えてもらった。(nはある程度大きい)というのが使える。この事実理解しないでコピペしてたのは秘密。seqの作り方を実装できた。最初の数値を(-1,1)と(1,0)にした。これでもまだmasさんと13も離れているのは一体何が起こっているんだ。変数を減らす方針を考え中→ひとまず一個変数消えた。偏見無くすために最初から解いたけど結局同じ答えで見落としだった。頑張った上に後でやった時に忘れそうなので長めのメモ。今の57B解はまだ不満だらけ。b+dが9以上の時は生成をやめる。b+dが9以上ならやらない。(a+c,b+d,c,d,N-1)的なことをやる。いう関数を定義しておく。Nは永遠に展開することを防ぐ変数。「b+dが9以上ならやらない」の部分は上と下に歩く関数にダミー数値変数つけてそこに9-b-dなどを書き込めばできる。この方法だと、関数の初項が(0,1,1,1,N)みたいな感じで0が混じるので、いわゆる分子に相当する部分をすべて+1するように変換。a+cの部分がa+c-1みたいになる点に注意。左端と右端を実行しないので直接気味に書く必要があるけども、これくらいで多分80は切れるはず。�左端と右端を実行するために初項の調整。(-1,1,1,0)として、前述の実行部の条件に分子に相当する部分であるa+cが-1の時はやらない、というものを加える。分子相当の部分を+2,分母相当の部分を+1し、if文などでa+c-1を変数に付け足すことで達成可能。調整次第ではあるけどもおそらく70前半にはなる。することで、ダミー変数ないしif文を消せる。これで70は切れるはず。�関数の無限展開を防ぐために使用していた5変数目のNを消すことを考える。b+dが9以上ならそもそも関数を展開しない、というように書き換えたい。変換する(Mは9以上の整数)ことで、「9以上なら実行しない」というのを内包できる。これで自分は60B解になりました。�そもそもa,b,c,dは8以下なので高々64通りしかない。分母>=分子みたいな条件もある。生成式もただ足すだけと単純。メイン部分が変数二つで済む。(a,b)を10b+aとか変換して考える。このとき「90以上でやらない」が「b+dが9以上ならやらない。このとき以下が問題になる。前者も下手なので損してそう。数値系の圧縮の際の頭の使い方が今更分かってきたなあ。今まで解くだけで終わり、コンテスト系でコピーして満足というプレーをしていたのは良くなかった。この問題はもう少し考察してみます。これはめちゃくちゃ感動した。思っていた方針が実はちょっと順番を変えたら行けたという話.」がめちゃくちゃヒントだったことに気づいた。びっくり麺類solverが天から降ってきたのでいろいろお勉強。品のあるC#コードで、構造や書き方など真似したいなと思った。C#自体は書いたことなかったので動作や書き換えに少し苦労した。コードが綺麗なので読解には苦労しなかった。一関数の部分はアルゴリズムから勉強になった。使いこなせると強そう。12Bのやつは展開部分の改造と本質的な枝刈りが必要そうだった。展開部分は、引き算引き算のケースでうまくいかない実装になっていたので再帰で原義的に変更。枝刈りに関しては、最大公約数チェックしたり実行部分が少ないやつをなくしたりした。あと検索漏れがあるので書き換え。デバッグ中で使ってない。->スタックオーバーフローしたので書き方変える必要がありそう・数値引数が全て引き算で構成されるときは後ろに命令をつける意味がある。そもそも乱歩的なものはこの引き算引き算の構成になるため、これを重点的に調べる必要がある。a(X):[0]a(X-p)[1]a(X-q)[2]と書くとき、一般的な12B構文と違って、sとrをどのように入れても意味を成すため,12Bだけでも12通り調べる必要がある。13Bにしただけでもさらにヤバいのが増えるので、動作速度的にも枝刈りがとても重要そう。応用が下手になるというデメリットがあるかなあ。15以下埋まったら新規開拓でピンポイントで探してみたい。最初数値かと思ったけどそれだと外に出れないし数が足りない。step少なくてかなり人間的。一変数の時と同じなんだけどなんか盲点だった。solverデバッグに使えそう。そもそもこのコード実行しても出来そうだとは思えない。人外解と言いたいけど既存の応用かもしれない。ムズいけどこの成長方法で一度動かしたことはあったと思う。1138はそれで取れるのって感じで面白い。これは人力でできなきゃ反省すべきやつ。コードの動作自体は面白そうだけどマップ的には無理。コードの動作もよくわからない。これでギザギザ作れるのか。ワンチャンありそうな図形をずっと描きながらなんか位置があう。田をいろんなところに描くやつ。二変数多分前のsolverは弾いてたな。自力で解ける気はしない。1314と類似コードなのでちゃんとヒントだった。白マスで見にくくしている。上方向に行きながら回収する。四倍ではあるけどこの経路取りは厳しい。いうの見ちゃうと縮むやついっぱいありそうだなあ。単独worstだったやつ。逆にこれできる人がいなかったのがちょっと不思議。考察すれば出てきそう。素晴らしい問題だなと思う。15Bの時の類似解で最初ちょっと灰マス踏む。邪魔な分を捨てたり、いい感じに位置があったりで解は人間的だけど解けたらすごいタイプの一問。masさんの雑記に一~三変数と書いてあるときは三変数説ある。ソルバーを作りましょうって感じの問題。上の予想はやはり当たっていた。人外解なんだけど、想像よりも綺麗に回収してた。縮んでも不思議ではない。