CodeChef START215A DIFFVAL:mod kでインデックスはk個のグループに分けられる。0, 1の個数は最低でも各グループサイズの半分(端数切り捨て)の総和以上であることが必要で、十分。 PRSUMARR:1は最後に適当に詰めればよいから、1以外の値の積でNになるような組合せが分かればよい。約数列挙してDP。


同じアイテムを何個でも使えるナップサックのDPみたいな感じで更新することで重複を防ぐ。 INTINT:耳DP INTINTHD:の遷移を行列で表してセグ木に乗せる MARKTREE:基本的には全域木の辺数*2が答えだが、1からNまでのパスのどこか一部分を切り捨てて得ができる。この切り捨ててよい部分の最大を求める。


MARKTREEHD:期待値で考える。切り捨て前の全域木による寄与は簡単(辺ごとに寄与を求める)。得できる量の期待値が求まればよい。DP。1-nパスを無視するといくつかの木になり、木内にS[v]=1なる頂点があれば1,nどちらかとつながっている必要がある。そのような頂点を渡り歩いていく感じで遷移。今まで


の最大の歩幅を状態に持たせる。遷移をグッと睨むと直線的なのでimos法で高速化。


Why guess when you can know?


United States 트렌드
Loading...

Something went wrong.


Something went wrong.