olpheの競プロ帖

競プロ問やアルゴリズム等の考察します

HUPC2021day2農工大セットのコメント

コンテストへのリンクです。 Aizu Online Judge Arena

A問題

簡単枠が欲しいねえって言っていたらいつの間にか生えていた。

1回で $1 \rightarrow 6$ にしている人や、$1 \rightarrow 5 \rightarrow 6$ を忘れてる人が多くてWAを出していてよかった。

B問題

G - Good Vertices

これ見てなーぶ君が思いついていた。普通に難しくない?

問題文を自然に書くのがかなり難しくて紛糾した。

C問題

これなんでたくさんペナ出てたの?

$1\le H,W \le 10^{5}$ で解けたらそうするつもりだったけど解けなかった。悲しいね。

D問題

鳩ノ巣原理、強い人でも見落として事故りがちなので出した。

さすがに明らかすぎたのか期待してたほどは事故ってなかった。

E問題

これもともと正十二面体で出そうって主張していたけどみんなにめっちゃ嫌がられたのでこうなった。(サイコロ担当さん?)

シミュレーション許す制約なの困る!(半分ぐらいシミュレーションしたので)

F問題

最初 $O(N^{3} max(b))$ とかのつもりで出していたんだけど明らかに一つNが無駄なのを指摘させてしまった。恥ずかしい。

ととりが無限に嘘解法投げてきたのでかなり嘘に強くなってそう。

G問題

これ見たとき笑っちゃった。構文自体はかなり親切(?)で行列累乗とかの高速化パートも構文解析と一緒に出てくるのが新鮮に感じた。

絶対面白いと思ったので出題をかなり主張した。

Weird LIS(AtCoder Grand Contest 055)

問題概要

ある $1$ から $N$ までの順列 $P$ があって、$P$ の $i$ 要素目を取り除いたときのLISの長さを $A_i$ とする。$2\leq A_{i}\leq M $ を満たすような $A$ は何通りあるか。

事実

$P$ のLISが $K$ だとすると、$A_i$ は $K$ か $K - 1$ である。また $K$ であるとき、 $i$ 番目の要素を使わないような長さ $K$ のLISが存在する。 $P$ の要素は3種類に分類できる。

・取り除くとLISの長さが短くなる要素

・取り除いてもLISの長さは変わらないが、LISに含まれることもある要素

・LISに含まれることはない要素

解法

$A$ の全ての要素が等しい場合とそうでない場合に分けて考える

全ての要素が等しい場合

以下のようにして $A_i = K \space (2\leq K\leq N/2)$ を満たす $A$ を作ることができる。

$2,1,4,3,...,2K,2K-1$

以下のようにして $A_i = N - 1$ を満たす $A$ を作ることができる。

$1,2,...,N-1,N$

全ての要素が等しい場合以外

$2\leq A_{i}$ の条件より、$2 < A_i$ を満たす要素がある。これは $P$ のLISの長さが $3$ 以上であることを意味する。 また、$A$ に異なる要素があるため、$P$ の中に取り除くとLISの長さが短くなる要素を $1$ 個以上、それ以外の要素を $1$ 個以上含む必要がある。

LISの長さが短くなる要素 $X$ 個とそうでない要素を割り振ったとき、LISの長さは $X$ 以上である。LISの長さを $X$ にしたければそうでない要素を全てLISに含まれることはない要素にすれば良いし、$X+n$ にしたければ、そうでない要素のうち左から貪欲に連続した二つをLISに含まれることもある要素にすれば重複なく数えられる。

これを数えることを考える。

以下のような遷移を行いつつ通り数を数えると良い。

①取り除くとLISの長さが短くなる要素を一つ追加する。

②取り除いてもLISの長さは変わらないが、LISに含まれることもある要素を二つ追加する。今後②と③を使用できなくするかわりに④を使用できるようにしても良い。

③LISに含まれることはない要素を一つと取り除くとLISの長さが短くなる要素をこの順番で一つずつ追加する。

④LISに含まれることはない要素を一つ追加する。

その際、以下のような情報を持っておく

・追加した要素の数

・LISの長さ

・①か③を行ったかどうか

・①以外を行ったかどうか

・④を行うことができるかどうか

提出

Submission #28318663 - AtCoder Grand Contest 055

Online MST(THIRD プログラミングコンテスト 2021 (AtCoder Heuristic Contest 007))

$8$位だったのでやったことを書く。

問題

$N=400$ 頂点 $M=1995$ 辺のグラフがある。辺のコストははじめ不明である。 $ M $ 本の辺について重さの情報が与えられるので、与えられるたびにその辺をグラフに残すかどうかを選択する。与えられる辺の重さは頂点間のユークリッド距離を四捨五入した値の $1$ 倍以上 $3$ 倍以下である。 最終的にグラフが連結である必要がある。 残した辺のコストの総和を小さくしたい。
なお、グラフの辺は最小全域木$5$個の和集合である。

初動

木以外を作る意味はないので最終的には木だけが完成するようにする必要がある。 後の方の辺の重さが分からない状態である辺を使うかどうかを決めないといけないので、後の方の辺の重さを適当に決めておく必要がある。これは期待値である2倍にする場合とそれぞれランダムに決める場合があると思うが、とりあえず $2$ 倍に設定して毎回最小全域木を求めると、$13917323561$ 点($221$ 位相当)になる。実際には使う辺の倍率は $2$ 倍よりも小さいので、適当に $1.8$ 倍とかに設定して求めると $14080471444$ 点($153$ 位相当)とかになる。

辺の重さをランダムに

一律に何倍とかに決める代わりにそれぞれの辺の重みをランダムに決めてから最小全域木を求めて、辺を使う場合と使わない場合のスコアの期待値を比較する。これを時間いっぱい回すと $14136487217$ 点($59$ 位相当(強くない?))になる。辺の使用状況を見ると、最初の方の辺と最後の方の辺で使用率が異なるように見えたので、不明な辺の重さをランダムに決めたあと適当に定数を加えると調整できると考えたので、何個か試すと $2$ 加えるのがよさそうだったのでそうする。$14189655151$ 点($28$ 位相当)になる。

高速化

手元で動かすときに生成回数を増やしてみるとかなりスコアが改善されたように見えたので高速化を行うことにした。各辺について過去の採用確率を求めてみると、過去の採用確率が実際の採用確率に強く影響しているように感じたので過去の採用確率が一定以上だと強制的に採用するようにした。あと、最初の方の探索回数を犠牲にして後ろの方の探索回数を増やしたが、これは効いてるかよくわからん。ここまでで $14205289770$ 点($19$ 位相当)

スコアの差の期待値が大きくなった場合途中で採用/非採用を確定するようにするとかなり速くなる。$14224313041$ 点($8$位)

やらなかったこと

あらかじめグラフを生成しておくと、毎回辺のソートしなくてもいいらしい。

おまけ

これ、下の方はほぼ採用されるし上の方はほぼ採用されないので予想するだけ無駄みたいなのがあるのか?

ICPC2021国内予選参加記

予選以前

去年まででふぇりんさんが引退してしまったので今年からはなーぶ君が加入して新生nowcowとして生まれ変わった。

なーぶ君には幾何とフロー実装できるようにしといてくれ!と叫んでいたらAOJの幾何の基礎のやつ(?)とか埋めていてえらかった。 でぃぶ君には去年まで構文解析とかの実装をやってもらっていたので、僕もデータ構造頑張るか~って言っていた。アジアまでには頑張ります……

模擬国ではなーぶ君に全方位木DP投げてもよさそうであることが分かったので嬉しくなっていた。考察をしたいので。

国内予選

でぃぶ君A なーぶ君B おるふぇCで開く。Cを開くとかなり難しく&重く見えてかなり焦る。でぃぶ君がAを通してしばらくしているとBで2ペナ生えてるのが見えたのででぃぶ君にCを押し付けてBの話を聞きに行くと、かなりよくわからないことを言っているように聞こえたので、僕が書きますと言う。 書いているとペナが増えていて焦るが、4ペナで通す。途中でペナが20分であることを説明する(ごめん……)

CはやりたくないのでDとEを見るが、Dはひらめき系に見えてひらめかなかったのでEを考えると、タクシー乗る回数を少ない範囲では全探索して多い範囲では最小化すればいいことが分かるので正しいことをなーぶ君に軽く確認して実装を始める。そのころでぃぶ君はCが解けたらしく、Cの実装を始める。途中誤読に気づいたが、修正して提出するとWAが出る。なーぶ君とデバッグしていたが、何点か修正しても古い出力と変わらないのでかなり焦っていた。ここまでで2時間ぐらい経過していて140位とかで2度目の予選落ちが頭をよぎっていた。あまりにも苦しくなってきたので変わってないけど出すか!って言って出すと(?)通る。その30秒後ぐらいにでぃぶ君がCを通し、一気に20位ぐらいまで上がりお祭りになる。僕はこれで予選は通過したかな~とか言っていた。安心したので冷静さを取り戻す。

Dについて考えると最初の3要素の順番はどうでも良いことが分かり、実験をするとサンプル2は以下のような順序のみ条件を満たすことが分かる。

1 3 3 4 3 3 4 3 3
3 3 4 3 3 1 4 3 3
3 3 4 3 3 4 3 3 1

なんとなく3組に分かれている気がしたので投げると通る。通ってから正当性は理解しました。

残りの時間は分からないFGHを考えていた。

結果は5完21位で国内予選通過でした!同校から参加していたATELIERも通過していたので一緒にアジアまで頑張ります。

反省

順位表を見てBの様子を聞いたのは良かったが、Cに対してしたのは多分邪魔なだけだった。難しすぎる……

古い出力をちゃんと取っておく。

落ち着く(どうやって?)

その他

九死に一生を得たという感じで非常にしんどかった。

めっちゃ人々を冷や冷やさせていたらしい。僕が一番冷や冷やしていましたけど。

ちなみに4完で終わっていると予選落ちです。危なかったね。

でぃぶ君にも全方位木DPを投げていいことが分かった。嬉しいね。

ちょくだいさんへ AtCoderで沢山問題解いてるのにひやひやさせてごめんなさい。

civ6マルチ プレイレポ

RaF持ってない人がいたので無しでやる。以前そのような状況でマルチをやった人がいるらしく、その場合はプレイできなかったらしい。

 

1日目(1~80ぐらい)
首都に隣接している6マスのうち5マスは川沿いでラッキー。
序盤にベトナムが異常な時代スコアを出している。自然遺産を見つけたのかもしれない。
他の国家の科学力が5とかの時代にベトナム、マヤが20も科学力を出している。どうやらヨセミテを取り込んでいたらしい。
この頃日本やベトナムと遭遇している。どうやらハンガリーパンゲアの西側に生まれたようだ。
ベトナムが都市数、人口、科学力で優れていることからヴォイ・チェンラッシュに警戒するという名目で日本と有効を結ぶ。
ハンガリーは山沿いに生まれたのもあって科学力が結構出ていて1日目終了時点ではベトナム、マヤが100ちょっと、ハンガリーが80程度、日本、ドイツが50程度科学力が出ていた。配置も概ねわかってきていて、北西部にハンガリー、南西部にドイツ、中央西に日本、中央東にベトナム、東にマヤがいるらしい。(途中に世界の様子が分かるスクショを貼っている)
ヴォイ・チェンラッシュ対策に日本には全力で兵営と防壁を作ってもらい、ハンガリーは黒軍を量産しておき、いつでも介入できる状態にしておく。
この辺りまでで日本、ハンガリーベトナムが宗教を創始している。ハンガリーは食料が出る証と都市からゴールドが出る証を選んだ。

 

2日目(81~110ぐらい)
予想に反してベトナムは日本を殴ることなく進行し、内政状況も大きな動きもなく進んでいく。我がハンガリーは日本、ドイツ、マヤと同盟を結んでおり、安心して内政できる状態になっている。
ここで突然ベトナムベトナム-マヤ国境にある都市国家のヴォリンに宣戦布告する。マヤはヴォリン防衛のためにベトナムに宣戦をし、マヤとの軍事同盟のボーナスを乗せるため及びベトナムの拡大を恐れたハンガリーベトナムに宣戦する。
各国の戦争序盤の主力は
ベトナム:射石砲、ヴォイ・チェン(野戦砲の技術はある)
マヤ:野戦砲、胸甲騎兵(らしい)
ハンガリー:フッサー、弩兵、射石砲、騎士
南の方でベトナムと国境が近いハンガリーは南からベトナム西部、中部に進軍する。同盟3つと軍事同盟の乗ったフッサーがヴォイ・チェンを撃破していきハンガリー優勢で2日目を終える。
戦前の科学力はベトナム、マヤが200程度、ハンガリーが150程度、日本が130程度、ドイツが100程度

 

3日目(111~120ぐらい)
ハンガリーベトナム西部の都市を1都市焼くのとほぼ同時期にベトナムに戦車が登場し始めハンガリー軍は撤退し特に何もない状況が続く。どうやらマヤとベトナムは小競り合いのようなことしかしておらず、ベトナム軍の大部分がハンガリー軍と戦っていたらしい。また、マヤとベトナムが和平を結ぶ。
この時期の各軍の主力
ベトナム:野戦砲、戦車、大砲
マヤ:野戦砲
ハンガリー:野戦砲、射石砲、フッサー、胸甲騎兵
また、この日終了頃に科学力はマヤが280程度、日本が250程度、ハンガリーベトナムが180程度、ドイツが100程度になっている。
ここで日本、ハンガリーベトナムの3国で会談が発生し、ハンガリー、日本の説得、交渉の結果、ヴォリンを含めたマヤ西部の3都市をベトナムが所有して良いという条件で3国で対マヤ連合を組むことになる。またこの頃、マヤやベトナムで航空機が実用化される。

 

4日目(121~140ぐらい)
開始後しばらくしてベトナムがヴォリンに宣戦、その後ハンガリー日本がマヤに、遅れてベトナムもマヤに宣戦する。ベトナムの大砲、爆撃機の活躍が大きく、3都市占領の戦争目標を達成する。
この頃日本やハンガリーの外交勝利ポイントは10ポイント近く溜まっており、我がハンガリーも外交勝利を目指すべく戦略を練っていたのだが、なんとRaFがないので自由の女神がないことに気がつく。マハーボディー寺院、世界会議と合わせて140ターンの会議で19ポイントになるはずだったがあてが外れてしまう。
また、この頃日本が科学力を大きく伸ばしており、日本が410程度、ハンガリーが310程度、ベトナムが250程度、ドイツが200程度、マヤが70程度の科学力を出している。
ここでベトナムと会談が発生し、マヤをベトナムが吸収、日本を2国で分割する条件で対日本戦を行うことになる。現在軍事力は日本がベトナムハンガリーの1.4倍ぐらいあるが、日本にはアルミが湧いておらず、アルミユニットが主役である時期に決戦をすることで有利になるはずである。ドイツはベトナムとかなり仲良くしており、アルミが日本に渡ることはないらしい。ベトナムに強く敵意を抱いていそうなマヤの動きがあまりにも読めなくて不安である。ここでユニットのゴールドでの購入コストが半分になり、現金所持量、毎ターン収入の両方でトップであるハンガリーも軍事的に優位に立てるかもしれない。

 

5日目(141~160ぐらい)
日本が信仰の守護者持ちの宗教を持っていたのでエレバンパワーで塗り替え始める。ベトナム、日本が宗教勝利に気づいていないことに期待してそれとなくベトナムにも使徒を向かわせてみるが、防衛されたのでベトナムを塗り替えるのはあきらめて、マヤの方に使徒を連れていくことにする。
この辺りで日本が異常に高圧的な態度で交渉をかけてくる。焦っているのだとは思うが、高圧的なので何かあるのかもしれないと思い、内心ではかなり恐れていたが攻めないことには勝ちはないので強い気持ちで突っぱねる。
ハンガリーと日本の同盟が切れたタイミングでハンガリーベトナムが日本に宣戦。(マヤだけ若干ベトナムに削られているが、左下の地図で各国の領土が大体分かる。)

f:id:olphe:20210403000328j:plain

ハンガリー日本国境

日本はジェット戦闘機の優位で序盤は戦争を優位に進めるも、徐々に物量の差に押され始め、ちょうど5日目終了のタイミングで日本が滅びる。
終戦直前に事前の分割案をベトナムが無視し、ウランのある都市を占領する。すでにベトナムにはウランが2タイル湧いていて、それに対しハンガリーは占領した日本の都市にしかウランが湧いていない状態で、ベトナムがウランの数で圧倒的優位を築く。
またこの辺りで同意のもとマヤがAIになる。

 

6日目(161~???ぐらい)
会議で核分裂兵器が作りにくくなった。この時点でハンガリーには核兵器はなく、ベトナムには核兵器が1,2発ぐらいしかないと思っており、核分裂兵器が作りにくくなればウランの優位を生かしにくくなると考えた。
同盟が切れる直前の国境の様子はこんな感じでチャーキエウの飛行場にいるジェット爆撃機ハンガリーの首都であるブダを核攻撃できるので視界が取れるようになるまでに(おそらく1ターン)飛行場を潰せるようにジェット戦闘機を寄せる。ベトナムのジェット戦闘機もかなりあることが分かる。
技術的にはロケット砲、近代的対戦車砲、近代的機甲部隊が出せるが陸軍がどれほど役に立つだろうか。
また、巨大戦闘ロボットのアップグレードで対空攻撃+100のアップグレードが近くなってきて、ロボットによる核の迎撃を考え始める。

 

f:id:olphe:20210403000231j:plain

ハンガリーベトナム国境(旧日本領)



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

マヤの方に宗教が広まっていて塗り替えられていないのを見てちょっと頑張れば宗教で勝てるのでは?となる。エレバンパワーで75%カットの使徒と3倍の使徒を量産しまくると勝った。(166ターン目、画像では勝ってないけどあと1ターンした後の画像)

f:id:olphe:20210403000626j:plain

モグラ

f:id:olphe:20210403002917j:plain

f:id:olphe:20210403002919j:plain

f:id:olphe:20210403002922j:plain

f:id:olphe:20210403002924j:plain 

その他

区域の生産力アップ、徴用、フッサーをかなり役に立てることができて、文明の強みに沿ったプレイングをある程度出来て良かった。

また、先進国というほどではないが周りの国よりは強いという時期が長かったので、いろんな争いに首を突っ込むことができて楽しかった。地域大国プレイも悪くない。

ちなみにベトナムは核を4発も持っていたらしい。

(最初書くつもりなかったので)序盤のスクショなくて、ごめん。

ICPC2020アジア地区大会参加記

ICPC2020のアジア地区大会(オンライン)に参加していました。

昨年は予選に落ちてしまったので2年ぶりの参加です。

メンバーは変わらずferin+div+olpheの3人でnowcowを結成していました。

 

コンテスト以前

国内予選終わってからチーム練は12月までほぼ毎週、2月からほぼ毎週やっていた。

 

受付の様子がある程度は見えていてちょっと面白かった。運営の人大変そうだった。

面白い名前のチームが呼ばれていると面白い。

 

コンテスト本番

初手でBを読みたかったのでDiv君にAを、ふぇりんに残りのどれかを読んでもらうことにした。

 

Bは雑にDPを書いて復元するのを書いてWAを生やしていた。修正してAC

Aも辛そうだったけどほどなくAC

Jの概要を聞くと木DPだねって言って木DPを書く。いらんかったらしいけどAC

Hの概要を聞いて、168本のセグ木を生やし出してしまった。

Iの概要を聞いて嘘を実装したのち分かってそうなDiv君に丸投げした。

ふぇりんがGを詰めていて、聞いてもほんまか?ってなったけど丁寧に詰めてそうだったので丸投げした。

微妙にやることがなくなってしまったのでまだ読まれてなかったEを読むと自明だったのでAC

次々とI,Gも通る。最近はしてなかったけど中盤で突然通し出すようになるのはかなりよくないんだよね

しばらくHの高速化をしていて、ふぇりんに話すと動的セグ木?らしいので準備してもらう。

その間にCで手数長かったらこんなに解かれなくない?とか言って6手全探索するコードを書いてバグらせていたら、Div君が5手で右手法する方法を見つけてくれたのでそのままバグを修正する。左右間違えて2WA出した、カス

動的セグ木の準備が辛そうだったので大量に生やしたセグ木を頑張って軽量化していたけど間に合わず終了

 

nowcowは7完14位で残念ながらここで敗退です……

まあ実力差がそんなに大きくないかな……みたいに思ってたチームすべてに負けたので実はかなり冷えですか?(そう思ってなかったチームにも負けたし)

 

コンテスト以後

解説の時間疲れてておかし食べまくった。ごめんなさい。

Yes/Noは異常チームがいて盛り上がっていてすごかった。うちも凍結後に1問通せて嬉しかった。

 

交流フェイズは、何人かと雑をしたり、ちょっと真面目な話もした。

これまであまり交流が無かった人の中で、Flip-Flop Cの人やharaharaのうち二人と話せてよかった。

競プロをやっている高校生は農工大に来てください。

 

その他

今のチームで3年参加していたが、今年で解散なので寂しくなった

問題文読みたくないので実装奪い取りまくっていたけど、そうじゃないのも何回か試してみるべきだったなあと思い始めた。実装激強マンか考察激強マンがきてくれると楽になりそう

来年もアジアに参加したい。来年は遠征できるようになっててくれ~

 

 

 

 

 

Codingame FallChallenge2020

情報少な目のDPをした。

GOLDの上の方だった。全体159位だった。

ルール

ポーションを作って金を得る。

金をたくさん持ってたら勝ち

4種類の材料がある。

常に5種類のクエリが存在する。

毎ターン行動を選ぶ。

相手と被った場合は両方が成功する。

こなされたクエリは消える。

 

スペルを唱えることで、自分が持っている材料を変えられる。

材料が11個以上になるようにはできない。

 

新しいスペルを習得できる。

1ターンで複数回唱えることのできるスペルもある。

 

スペルの習得は i 番目のものを習得するには i 個のレベル0素材を支払う必要がある。それぞれ i - 1番目のものに配置され、素材が配置されているスペルを習得する場合は、素材ももらえる。

 

6個作った人が発生したら終わり

左のやつにはボーナスがあるらしい。

 

やったこと

とりあえずできる中で一番利益がでかいものを選ぶことにする。

構造体とか、DEBUG出力用の関数も用意しておく。

(13日1:50)

 

Wood1昇格(13日2:15)

 

とりあえず無駄にはならないスペルも唱えてみることにする。

Bronze昇格(13日2:55)

 

とりあえずはじめはスペルを回収してからコスパが一番いいものを選んでみる?

DPで実装できそう。dp[スペルの使用状況][手持ちの素材]

それぞれ2^Nと14C4になる?

 

とりあえずスペル10個になるまで下から習得する。(17日3:00)

思ってるより重くてやばい(17日5:45)

スペルの使用状況無視してDPする。初回だけは使えるか判定できるので初回は判定する。一回でもアウトになって以降/2連続同じの使うは判定できないけど、大幅には変わらんやろ!w(17日8:00)

ジャッジ激重だったのでようやくシルバーになった(17日9:07)

スペル7個持たせてたのを12個にする。(17日9:18)ここでsilver240

明らかに強いのを敵に取られる場合があるので、それの対策をする。具体的には、取ることができるスペルの中で一番強いのを貪欲に取ることにする。但し、同利益ならrepeatできるやつを優先(17日11:30)260->150

repeatを別に優先しない?(17日11:45)150->160

DPの復元する際に、コスト軽い方から来たのを優先する。(17日16:30)なんも変化なさそうで困った。

持つスペル12->15個にしてみる(17日17:00)130->160

ポーションの評価に、最後に(作ってから/learn)終えてからのターン数を持たせる?(17日17:45)170->110

スペル12個に戻す(18日20:00)180->160

最後に(作ってから/learn)終えてからのターン数にミスがあったのを修正(18日21:30)170->170

ポーションの余りコストも何らかの形で考慮したい。多く余るものを優先する?

とりあえず諸々の価値が同じとき、多く余るものを優先するようにした。160->170

目指してるのと違うのを作れるようになっても無視する?した。180->200

スペルのバランスも考慮したい。自分の持ってる呪文のdifの総和の絶対値を小さくする方に引っ張る(19日2:30)レート43.3->GOLD昇格

これにも重み付ける?つけないことにする。

コスト(個数)の重さにペナルティを課す?めっちゃ弱い->めっちゃ弱い

スクロール読もうとして読めてない場合がありそう?(直した)190->130

プラスの和のminもでかい方が嬉しい?(19日12:15)140->200

ダメそうなのでこれはやめようかな

スコアに加えてあまりも同等に評価する?(19日14:15)200->90

この変更により、たくさん余るのを優先しないようにする。(19日15:30)90->100

累計のスコア、ターンで重み付けしてみる?あまりにダメそうなのでしない。

最後の1個を作る場合はあまりじゃなくて加算値で評価(20日15:52)170->160

相手が目指していそうなものを検出する?した。

目指しているやつを作れるようになっていて、相手が後1ターン以下で作れるなら即作る。(20日17:15)160->170

コスト(個数)の重さにペナルティつけるのをやめる。(20日18:45)180->140

あまりの計算がミスっていたのを修正(21日3:35)150->120

作れる時でも、ぎりぎりまで粘った方がよさそうな場合はそうする。(21日6:00)110->140?

粘らないことにする。(21日14:20)140->130

相手より遅くなりそうなものの優先度下げる(21日14:45)120->170

相手が即作れる時だけ無視する程度にする?170->140

敵が6個完成させそうなときも特別処理する。(21日16:00) 140->100

スペル10個にしてみる(21日16:30)90->190

スペル15個にしてみる(21日17:00)190->120

ある程度揃ったらスペル習得打ち切る。(21日17:30)120->110

brewの条件を厳しく?(21日18:10)100->80

brewの位置を調整 & 無視の条件のミスを修正(21日18:50)90->130

戻す(21日19:00)130->170

相手が5個になったら即brewする170->170

ターン数のカウントのバグを修正(21日20:30)150->110

 

プラスもマイナスも少ないものを得るのを優先?(22日14:00)180->130

わずかに高速化(22日14:55)

実装の変更(22日16:00)

高速化(22日16:50)

無視の条件のミスを修正、無料魔法の優先度を上げる、少ないものの調整を一度打ち切る(22日17:15)

 

TimeOutがきついのでdp部分でターン数が10より多く必要なものは無視することにした。(22日23:10)

ちょっと変えた。

消した部分と実装のマージ、スペルの調整するので、スペル12個にしとく(23日3:50)

青の補充したい場合に、tomeを見るようにする。(23日4:20)

習得時に青の支出も考える(23日4:30)

習得してスペルを使うのもするようにする。但し初手のみ(23日10:20)90->70

どちらかが5個作ってるなら次先に作るようにする?せんとく

即作る場合に、作れるものが複数ある時に対応

初手以外にもスペルのやつつける。

 

なんやかんやあってやってないこと

あと何手で作れるかが正しく計算できていなさそう?出来ていそう

 全種類同程度に消費しやすい方が嬉しい?よくわからん。形を変えて実装した。

使用状況bitで持つのは無理だけど、集合は持つ?サイズで比較して小さい方が嬉しい。重いので無理そう。

初期魔法何回か使う場合に結構引っ張られていてつらい……つらいね。

無料魔法が少ないと……つらい!つらいね。