久しぶりにコンテストに出ました。前回いつ出たんだろ?と思ったら5月で、まじかよおいってなってます。3年間で10回すらコンテストでてないというね。流石にやばいんで、年度内に緑にはなっておきたい・・・。
それはさておき、ABS関数の話です。ABC113のB問題でabs関数を使いました。それで、次のようなコードを書きました。
続きを読む久しぶりにコンテストに出ました。前回いつ出たんだろ?と思ったら5月で、まじかよおいってなってます。3年間で10回すらコンテストでてないというね。流石にやばいんで、年度内に緑にはなっておきたい・・・。
それはさておき、ABS関数の話です。ABC113のB問題でabs関数を使いました。それで、次のようなコードを書きました。
続きを読むシータスの草原でRUBICO PRIMEを構えてタスク フィボルグ(グリニアが乗ってくる飛行船)をバンバカ撃ち落としていく姿に憧れて、2週間ぐらい悩んだ末、Prime Acsessを購入して念願のRUBICO PRIMEを手に入れたわけです。しかし、やっぱりMODで強化しないとタスク フィボルグなんぞ撃ち落とせるわけがない。調べてると、どうやらいい感じのRivenMODが必要とのこと。
しばらくwarframeを休止してたので、MOD周りが色々追加されてて、wikiとにらめっこしたりしながらやってます。その中でRivenMODというのがあり、最初「なにこれ?意味わからんぞ?」となってましたが、課題をクリアすると強いMODになる(ランダム)という感じだと思います。入手方法はソーティーミッション報酬かトレードか。(一応その他入手方法もあります。)そのため狙った効果が出るかは運次第な上に、そもそも大量に入手できるものでもない。そのため、ソーティーミッションの存在すら忘れていた私はRivenMODなんて数枚しか持ってないわけです。じゃあRivenMOD使わずに、ある程度戦えるビルド作るか・・・エイトロン討伐用にも必要だし・・・。
ということで、一番上の画像のビルドになったわけです。毎度のことながら、どこぞのサイトの殆ど丸パクリです。このサイトのエイトロン用放射線ビルドを参考にMODを選んでいます。使用フォーマは4枚でした。
フォーマを刺すと収容量もリセットされて、「また弱くなったやつで育て直しか」となるので、刺しとけばまあまあ戦えるMODは
の2つだと思います。Point StrikeがないとRUBICO PRIMEの高いクリティカル確率の意味がないですし、というかPoint Strike刺しとけばクリティカル確率95%なので、もはや固定です。それとSplit chamber刺すと、木星IO周回しながら再育成できる程度にはなります。
このビルドなら、ソーティーミッションは楽勝でした。敵に囲まれると袋叩きになるのはマガジン5発&倍率5倍じゃないとダメージが出ないから仕方ない。エイトロン討伐もRivenMOD積んでる人ほどじゃないですが、頭当てるフェーズでは20発当てたら落ちるぐらいだったと思います。体感なので確かなデータはないです。それと、目標だったタスク フィボルグを撃ち落とす、これはシータスのKonzoの依頼の一番高いレベル帯では無理でした。一番低いレベル帯なら1発で落ちました。Lv20のタスク フィボルグなら1発で落ちたので・・・RivenMOD入れてない割にはいいんじゃないかなあと・・・。
まあ、ダメージ出したいならLanka持っていけという話なんですが。調べてたら、LankaのRivenMODなしとその他スナイパーライフルのRivenMODありが同等の強さとか出てきたので、うちのRUBICO PRIME…ってなってます。いやまあ、ほら・・・形状とかかっこいいやん?あとチャージいらないし・・・。
とりあえずシータスでよく見かけるRUBICO PRIMEをソーティーミッションで使える程度にはしたので、次は通常ミッションでよく見かけるIGNIS WARITHですかね。フォーマ4枚でテンプレビルドあるらしいので、頑張って作っていきたいです。
ところで、地球発掘でやけにZARR見かけるんですけど、流行ってるの・・・?私は「使いにくいし自傷するし、いいところは形と音だけだよ!!」って切れてTONKER持ち出した思い出があります。グレポン武器もめっちゃ強いのほしいな。
最近warframeにまたハマっていまして、休止してた分のコンテンツとかを色々とやっているところです。アンプ作成が辛いですけど、111アンプとRUBICO PRIMEなりスナイパーライフルあるとエイトロン テラリスト討伐が楽です。三兄弟はまだやったことありません。
マスタリーランク13で休止してたので、流石にMRあげとかないとあれだなあと思って色々な武器のランク上げをやってました。warframeのランクを上げると武器のランクを上げるよりポイントが入るらしいので、INAROSとか休止してた期間に追加されたフレームの育成や、持ってる武器でランク30に達してないセカンダリや近接を入れて、経験値配分でランク上げていました。
適当なフレームに強いプライマリ、適当なセカンダリと近接で地球発掘20wavesや、Equinoxで適当な武器積んでMainで棒立ちマンとかやってたらなんか上がってました。思ったより上がりやすかった。
MR14試験は殲滅ミッションなので、よほどのことがない限り失敗しない感じでした。EquinoxのMain発動して、IGNIS WRAITHで燃やしてたら勝手に終わってましたし。これよりも、消える足場のほうが難しかった。
マスタリーランクに関しては特に目標はないのであれですが、MR制限のある武器すべてアクセスできるMRまであげたいとは思ってますが・・・あまり色々な武器を使うタイプじゃないので、いつになることやら・・・。
[mathjax]
最近なにもやる気が起きません。と言いながらwarframeやってるんですけどね。楽しい。
「流石にやってない問題たまりすぎてるなあ」と思って授業中暇だったので、溜まってた問題を解いてました。そしたら、60分かかってしまった問題があったので、備忘録として残しておきます。いつか使いそうなので証明も書いときます。
なんともクソみたいなコードですね。しかし、これはもっと短く書けたみたいです。
[blogcard url=”https://beta.atcoder.jp/contests/abc108/submissions/3331075″]
とてもシンプルです。しかし、ここまでシンプルにできるのか?と思ったので、ちゃんと計算してみました。
\(A(x_1,y_1),B(x_2,y_2),C(x_3,y_3),D(x_4,y_4)\)とおく。
また、線分ABの距離disと傾きaを求めると、
\(AB=\sqrt{(x_1-x_2)^2+(y_1-y_2)^2} \tag{1}\)
\(a=\frac{y_1-y_2}{x_1-x_2} \tag{2}\)
となる。
ただし、\(x_1\neq x_2\)、\(a \neq 0\)である。
また、線分ADは線分ABに垂直なので、
\(\frac{y_1-y_4}{x_1-x_4} \times a =-1 \tag{3}\)
である。(3)式を変形して、
\(y_3=y_2+\frac{1}{a}(x_2-x_3) \tag{4}\)
である。さらに、線分BCの距離は
\(BC =\sqrt{(x_2-x_3)^2+(y_2-y_3)^2} \tag{5}\)
である。ここで、線分ABと線分BCの長さは等しいから
\(\sqrt{(x_1-x_2)^2+(y_1-y_2)^2} = \sqrt{(x_2-x_3)^2+(y_2-y_3)^2} \tag{6}\)
(6)式に(4)を代入して変形する。
\( (1 + \frac{1}{a^2})x_3^2 – 2(1 + \frac{1}{a^2})x_2 \cdot x_3 + {(1+ \frac{1}{a^2})x_2^2 – AB^2} = 0 \tag{7} \)
(7)式を\(x_3\)について解いて整理すると、
\(x_3 = x_2 \pm \frac{AB}{\sqrt{1 + \frac{1}{a^2}}} \tag{8}\)
となる。ところで、(1)式を(2)式を用いて変化すると、
\(AB=(y_1-y_2) \sqrt{( \frac{x_1-x_2}{y_1-y_2} )^2 + 1} \tag{9}\)
であるので、(9)式を(8)式に代入して
\(x_3=x_2 \pm (y_1-y_2) \tag{10}\)
となる。
問題の条件より各頂点はABCDの順に反時計回りに設定するので、\(x_2\)と\(x_3\)の位置関係より、
\(x_3=x_2+(y_1-y_2) \tag{11} \)
と求められる。(11)式を(4)式に代入して、
\(y_3 = y_2 + (x_2 – x_1) \tag{12} \)
となる。\(x_4とy_4\)を求めるには、頂点Bから頂点Cまでの\(xの増加度とyの増加度\)を求め、それを\(x_1\)の座標に足せば求められる。
うーん・・・めんどくさい!!!とってもめんどくさい!!なにこれ!!!
しかし、ちゃんとシンプルなコードにかかれている式が出てきていますね。ただ、これはめんどくさすぎる。なので、もっと楽に示します。
問題をもっと簡単にすると、どちらかの頂点を中心として、もう一方の頂点を90度回転させればいいので、回転行列を用いれば一発です。
友人にLINEで「こういう問題あって、こういう示し方したんだけど、いい感じのない?」と聞いたら「回転行列使え」と来て、膝から崩れ落ちました。また人生を無駄にしてしまった。
電気ばっかやってると、複素数とかラプラス変換あたりをよくつかって、行列をあまり使わないので完全に忘れてました。とおもったら、制御で線形代数使ってるわ。ちゃんと勉強してないだけでした。
二点が与えられて正方形を作る場合、残りの点の座標は次のようになります。(反時計回りに正方形の頂点を設定しています。)
レリック集めの効率に定評のある木星IO。その周回をさらに効率化するためにEQUINOXの陽4番特化ビルドをここ1週間ぐらい組んでました。時間がかかったのは、セファロンシマリスで交換することで入手できるMOD「 Energy Conversion」のせいです。75000地位で武器取ってしまったために、最終的に175000地位が必要になったと言うね。
EQUINOXの陽4番特化ビルドを作るに当たって、こちらを参考にさせていただきました。というか殆ど丸パクリです。それで自分の組んだビルドは以下のようになりました。
相違点としては、 Transient FortitudeがContinuityに、 Intensifyが Umbral Intensifyに変わっています。
Transient Fortitude は持っていなかった&入手がめんどくさそうという理由で諦めて、属性の同じContinuityを投入、 Intensify はMAXでアビリティ威力+30%ですが、 Umbral Intensifyなら+8で+36%ということで変えています。いろいろやってたらENDOが尽きてしまったので、溜まったら Umbral Intensify をMAXにする予定です。
このビルドだと、ステータスは次のようになりました。
このビルドは、木星IOの10wavesぐらいなら適当な位置に突っ立ってるだけで敵を倒せます。あとはエネルギーが減ってきたなあと思ったらドロップ品回収ついでにマップを一周すればいいです。
使い方は適当でも大丈夫でした。1wave目に Provoke(陽3番アビリティ)発動して、ついでにMain(陽4番アビリティ)発動して、 頃合見てMain解放してれば、10wavesまでなら余裕です。というか殆ど10wavesで離脱するから、それ以上で通用するかはやってないんですよね。一応傍受(感染体Lv35~40)で試しましたが、Main発動して、敵が増えてきたなあって思ったらMain解放してたら普通に敵が溶けてましたし。まあ低Lv~中Lv帯ならこれで良さそう。
さて、木星IO周回用のフレームが完成したので、あとは回ってレリック集め・・・そしてRUBICO PRIMEを作るんだ・・・!!
休止してた間に溜まったメインクエスト消化していきます。今回はINAROSの砂嵐です。新フレームが手に入ります。サクリファイスよりモチベは高め。やっぱ新武器とか新フレームはワクワクする。
このミッションはざっくり言えば、火星から壷を持ち帰って光らせて、また火星行って壷持ち帰って光らせて、また火星行ったらINAROSがいるので倒して終わりです。
壷を持ち帰った後は、壷の側面に絵柄が描かれているので、それに対応した敵を一定数倒すと、その絵柄が青くなり、その状態で火星に戻るとイベントが進みます。私の場合は、コーパス:デトロン クルーマン→コーパス:レールガンモア→感染体:ジャガーノートでした。敵は誰が倒してもいいので、自分で倒さなくていいっていうのは楽です。もっとも、そのエリアに人がいないまたは初心者が多いってことがあるので、自分で倒したほうが楽です。
まあそんなこんなで戦ってたら、最終戦で守護者(INAROSのコピー)と戦います。一定HP削ると棺に入って無敵化し(移動しなくなる)、代わりに出てきた石像と戦い、石像を倒すと守護者の無敵が解けて・・・を3回ぐらい繰り返します。石像が2体出てきたら、次で終わりです。
さて、守護者ですが、何度もやられました。大体「あ、これ死ぬわ」ってなる攻撃は二種類あって、近接攻撃を食らうと、よろけが発生し、回避方向ミスるとそのままハメられて死亡か、毒矢に当たると気がついたら死んでたのいずれかです。なので、接近しない、毒矢を撃つときは立ち止まるので、射線に入らないことを心がけてたら、死ぬことは減りました。
しかし、自分は死ななくとも敵を倒さないと意味がない。最初武器はASTILLA(腐食)とATOMOS(腐食)で行ってたんですが、さっぱりダメージ通らないし、弾は尽きるし・・・。ムカついてきたので、プライマリをTONKERに変えました。もちろん爆発とクリティカルマシマシです。弾薬50発でしたが、ボス以外戦わなければ足ります。マルチショットがあれば、むしろ余ります。
とりあえずボス戦では自爆に気をつけつつ、ある程度距離を取ってTONKERをぶっ放し、ダメージを与えていきます。しばらくすると石像が出てくるので、出てきたらマップ下から神殿外に出ます。そこからTONKERぶっ放すと、4発ぐらいで石像が落ちます。これを3回繰り返します。TONKERの爆風ダメがあるので、石像2体出てきても片方に当てまくってればもう片方も落ちるという。やっぱTONKERは最高やな!
warframeで戦うミッションだったので、結構楽しかったです。オペレーターも悪くはないんだけどねえ・・・内なる紛争は楽しかったですけど。DEはオペレーターできないとクエストクリアさせないらしいので・・・。あと、オペレーターは無強化です。というかフォーカスとかさっぱりわからなくて、なにこれ状態。これ強化したら楽になりそうではあるけどな。
久しぶりにwarframeしたいなあって感じでやってます。復帰した感じではないですけどね。ただ、自分の育てた武器で敵がバタバタ死んでいくのは爽快です。
しばらくやっていなかったので、メインクエストを終わらせていきます。今回はアップデート23で追加された”サクリファイス”です。
久しぶりすぎてオペレーターの攻撃方法忘れてました。右クリックでビーム、近接で衝撃波、5で転移です。衝撃波当てて転移するってところが何もわからず何度も死にました。オペレーター苦手なんだよなあ・・・。
敵にはやたらセンティメントが出てきます。硬い強いうざいの3コンボが揃った苦手な敵です。何も知らずにクエストやってたときは、「なにこれ全然削れねえじゃん!!」ってなりました。wikiで調べて「腐食が有効」ということでプライマリ:ASRILLAに腐食つけて回してましたが、減りはするんだけど・・・途中で耐性つくらしく、半分削るのは早いけど、その後が長いみたいな感じでした。Void ビームで耐性リセットできるらしいんですけど。
フレームを手に入れた後、センティエント3種と戦闘するところがあるんですが、近接武器が自動で置き換わってて、「あれ??僕のORTHOS PRIMEどこ???」ってなりました。武器が近接のみ?武器切り替えしてないからわからないですけど、センティメント3種を近接のみで倒しました。はっきり言って苦行でした。
Umbraとの戦闘ですが、オペレーターのビームでシールドを削る必要があります。オペレーターとフレームを行き来しつつビーム当てるとかくっそだるいので、安地探してました・・・というか気がついたら安地でビーム撃ってました。
詳しい場所は忘れましたが、高台に登ってオペレーターで高台の端に立ちます。そうすると敵はそのへんをウロウロ走り回るので、走り回ってるUmbraにビームを当ててシールドを削り、削りきったら近づいて即衝撃波から転移でENDです。
サクリファイスですが、夜中にやってたこともあって、センティメントうぜえ、センティメントうぜえってつぶやきながらやってました。楽しくはなかったです。まだ地球発掘やってるほうが楽しいです。んで、これで手に入るのはExcalibur Umbraだしな・・・そもそもExcaliburって使い道がその・・・。MESAよりはあるのかな・・・MESA4番、前のがよかったなあ。
和歌山に行ってきました。JR紀勢本線に揺られるがままに、着いたら御坊駅。ちなみに下調べとか一切していません。今回の旅行の目的は「海行きたいな」なので、海に行ければそれでいいという考えで動いていました。
さて、御坊駅に着きまして、海岸まで行くには西御坊まで行かなきゃいけないらしい。そして、御坊駅から西御坊駅まで行くには、私鉄の”紀州鉄道”とやらに乗らなきゃいけないらしい。・・・紀州鉄道?聞いたことないですね・・・。ただ、こういう場所でよく知らない私鉄に出くわすとワクワクします。
続きを読む最近何もしてなくて何してるんだろうというぐらいに何もしてません。気がついたら解いてない問題が溜まってたので、とりあえずA問題とB問題を解いてました。いつもはC問題解けたらメモ代わりに書いてますが、今回はABC107のB問題です。2次元配列を縦と横に探索していくので、後で使えるかなあと思ってます。いやこれぐらいはいつでも使えるようにはしたいですが・・・。
[blogcard url=”https://beta.atcoder.jp/contests/abc107/tasks/abc107_b”]感覚としては、選択した部分を削除して左詰め/上詰めするような、エクセルの行/列削除みたいな感じです。消す部分は、全て’.’で成っている行/列。エクセルだったら、何もデータの入ってない行や列を削除する感じかなあ?とか思ってました。
とりあえずやることとしては、「一列または一行が全て’.’の行や列を削除し、その部分を詰める」コードを書くことになります。
消す部分を探してその空いた部分を詰めて表示するというコードを書かなくてはなりません。しかし、配列の空いた部分を詰めるって大分めんどくさそう・・・。なので、あとで消す部分がわかるように、違う文字で置き換えておきます。そして出力するときに、その文字を出力しないようにすれば、出力されたデータは詰められた状態になります。
探し方は愚直に、一列または一行全部見て、全部’.’だったら違う文字に置き換え、です。早くなってるのか謎ですが、なんとなく、「一行または一列全て’.’なら、最低限、最初と最後は’.’じゃないと全部探す気にならないよねえ」とか思って、「行または列の最初と最後が’.’だった場合のみ、その行または列を見る」という書き方にしてます。
このとき、全て’.’だったら違う文字で置き換えるわけですが、条件文を「全て’.’だったら」というふうにしているとミスりました。私は行を見てから縦を見たわけですが、次のような場合、列を見るときに失敗します。
##.#
….
##.#
.#.#
まず行を見ていくと、2行目が全て違う文字で置き換えられます。行を見おわったら次は列を見ていきますが、3列目は全て違う文字に置き換えられるはずですが、2行3列目の文字は行を見ているときに違う文字で置き換えられていて、’.’ではないので、条件に一致せず、プログラムは「この行は全て’.’じゃなかった」と言って文字を置き換えません。このせいで20分使いました。
なので、後に行う処理の条件文は「’.’もしくは置き換えられた文字」にします。
一番時間かかったのが出力でした。ただ単純に「置き換えた文字は出力しない」ってやればいいやと思ったら、これ改行しなくちゃいけないんですね。その改行にすごく苦労してました。
普通に2次元配列の中身を表示すればいいんですが、そのままだと次のような感じになります。
出力
###
###
.##
2行目でも改行されて変な空白が出ます。これを消したい。なので、もうめんどくさくなってたので、bool型のflagという変数を作って、毎行文字を出力したらflag=1にして改行、そうでない場合は改行しないという、なんだかなあという感じになりました。
以上のことをコードにしたら、次のようになりました。
夏の暑さも一段落つき、虫の音色が秋の訪れを知らせてくれる今日このごろですが、いかがお過ごしでしょうか。私は雷雨のせいでロードバイクで走れず、というか未だにしまなみ海道のときのやってしまった右足の痛みが残ってるという、20代とは思えない回復力の無さに「これが20代・・・?」と愕然としています。
慣れない時候の挨拶で始めたのは、バイト中「時候の挨拶ってなあ、えーと・・・なんか、あー・・・堅苦しいやつ」という意味のわからない説明をしてしまったのを思い出したからです。
夏の暑さはまあ一段落した気はしますが、秋の訪れよりかはゲリラ豪雨の連続であり、フレシェット弾かよこれってなる程度の雨に降られ、ひでえ毎日です。
さて、珍しくwlwと自転車以外のことを書いてますが、そもそもこのサイトは”日記”であり、そういう感じでサイト作ってるので、何らおかしいことはありません。むしろ”日記”にwlwのことばっかり書いてるほうがやべーやつです。夏休みの日記に「今日はどういう試合をして、どこが反省点で、ビルドはこうしたほうが良いのでないか」とか毎日書いてるやつがいたら、再提出を食らいます。そもそも日記を再提出させてる時点で日記ってなんだっけ?ってなるんですが・・・。
今回書きたいのは”コミック”のことです。もっと言えば、なぜかシリーズの中で何かの巻だけどこにも売ってない状態です。
続きを読む