T1二分没想到??
T2dp想到了一个比较好的预处理,拿到了80分,虽然是数据出锅
T3最后只想着T2对拍了,就没有去看。调整时间,T1不确定时心态要稳住,正常思考T2T3
T1「二分」「最短路」
二分答案k然后去跑最短路chk,显然是路径长度与k成正相关不用考虑那么多bfs的
T2「线段树优化」
定义f[i]表示考虑到i这个位置,并且在i开枪,的最大贡献,转移f[i]=f[j]+cnt[i]-sum[i,j]
因为cnt为覆盖i的区间个数,但是同时覆盖i,j的之前已经算过贡献,所以去重,
用线段树维护一个f[j]-sum[j][i],在i往后枚举的时候,sum_{i,j}也会随之而变,
dp的思路,当算完i的贡献后,若i这一位是某个区间的右端点,
那么在这个区间中的点的sum值,在i++后就会少一个,所以区间加就好了