2015-08-01から1ヶ月間の記事一覧

Rings (AOJ2562)

クソコード博覧会. 3次元はだいたい球とかで線分とかとの話になって二次式を解くみたいなのになりがちだが、これはまあまあおもしろかった(設定が簡潔なのもよい)とりあえずきれいに回転させたあとz=0平面との交わりを出して円の内外にわかれてるか判定.交わ…

Minimum Spanning Tree (AOJ2559)

典型良問.こういう分割しそうなやつはとりあえずまず一直線の区間で考えるのが吉.そのあとマージの方法を考えればいい(といってもだいたいいわゆるマージテクが効くと思うけど) dfsがstack overflowして悲しかった(事前にbfsして順番決めるだけで回避できる…

影の魔女 (AOJ2315)

nがk個・・・なんか正規分布に近づくとか・・・みたいにに騙されてはいけない(確信). 冷静に式に落とすと簡単. でかいところではN-ボナッチみたいな遷移式(行列)になる(ので直近N個を縦ベクトルで見る) 小さいところははねかえるので線形代数です. #include <bits/stdc++.h></bits/stdc++.h>…

Sports Days 2.0 (AOJ2432)

典型良問. 累乗系の本質は結合法則.ただの乗算だけでなく,a->bへi回移動での(max,min)長さ とかは典型. #include <bits/stdc++.h> #define rep(i,n) for(int i=0;i<(int)(n);i++) #define rep1(i,n) for(int i=1;i<=(int)(n);i++) #define all(c) c.begin(),c.end() #define</bits/stdc++.h>…

Speedrun (AOJ2591)

公式解説見ればOK こういう系結構出るから気をつけないとね セーブしうる所を全部持って(実装上Nも入れとくと楽)lower_boundで毎回探して30個くらい回せばOK.実装苦手なのでこういうのですら詰まるんだよなあ・・・ #include <bits/stdc++.h> #define rep(i,n) for(int i=0;i</bits/stdc++.h>…

Trip to Kyoto (AOJ 2618)

適当に書いてダメだったら考えようと思って書いた奴が通ってしまった(まあ大丈夫そうではあったけど) 公式解説がないのでだれか教えて 解法:とりあえず道を無視すると45度回転して中心(座標幅の真ん中)がうれしい.道があってもだいたいそこら辺だろ(ヘラヘラ…

あなたはstackをひとつ持っている

探索して、物を拾ったり取り出したりしてなんらかの対応をつけます きちんと対応付けできるか?とか対応付けの個数の最大値は?みたいな問題があります 典型的な例が Stack Maze (AOJ2538)です この場合探索する場所がDAGなので、区間DPが出来ます。何を持つか…

Hashigo Sama (AOJ2542)

読解3,発想1,ライブラリ0,実装3,やる気4 そんなに難読ではないんだけど,1200+の特性上まず読もうとしてめんどくなってCruel Bingoとかに逃げる とかのパターンから逃げるのが難しい ちゃんと読むと解法は一瞬で生える(多分この部分だけだと300点位じゃないか…

Sweet War (AOJ1353)

A-Bにしかよらないのはまあわかる.A-Bは広い範囲の値を取るので,美味しみの方でメモりたくなる.dp[i][j]="i個目以降で(先手が)おいしみjを得るのに必要なエネルギー格差"を持って更新すればいいです.初め逆シミュレーションみたいなのをして頑張って更新をO(…

天下一2015 qualA

13位でした。 Bから開く,あっ(察し) Cを見る どうせ二部マッチング→ちょうどうまくいく二つ以外(奇数サイクルの)swapする意味が無い(そいつらを全部変えればOK)ので二部マッチングするだけ.HとWを間違えて1WAのあとAC. Aを見る.普通に1WAした後展開図をググ…