LeetCode Weekly Contest 114
LeetCode Weekly Contest 114:
https://leetcode.com/contest/weekly-contest-114
- masashinakata
- 499
- 1
- 0
- 0
てんぷら
@tempura_cpp
@armeria_betrue 愚直にやると3^Nです(各数字についてAで使う、Bで使う、使わないのどれかなので)。 また最大化するものはどちらかで使ったものの和としていいです(最後に半分を出力するだけ)
2018-12-09 13:56:55
てんぷら
@tempura_cpp
@armeria_betrue このとき、差が同じになるような分け方に対しては和が大きいものだけ残しておけばいいのでdp[i][j]で(i番目までで差がjになるものの和のmax)とすれば今回は和の幅が狭いのでとても速くなります
2018-12-09 13:58:53
てんぷら
@tempura_cpp
@armeria_betrue Nについてこの制約で3^Nからの高速化がbitで頑張るじゃなくて普通のナップサックDPなの少し罠ですよね笑
2018-12-09 14:06:05
アルメリア
@armeria_betrue
@tempura_cpp ですねー…2^Nで片方列挙+もう片方としてあり得る値をbitset管理、なんかも書きましたけどTLEでした。ガッツリ計算量落ちるんですね…
2018-12-09 14:11:02
てんぷら
@tempura_cpp
@armeria_betrue 方針は上と同じで枝狩りの代わりに半分全列挙にしてもO(N*3^N)くらいになってACできました
2018-12-09 14:29:23