摘要: 如果给相同的位置连边,最后联通块数是n,最后答案就是$9*10^{n-1}$ 但直接连边是$O(n^2)$的 所以事先处理出一个ST表,每次O(1)地给那个ST表连边 最后再一点一点下放,就是把在这层的同一集合的的左儿子连到一个里,右儿子连到一个里 统计最下面那一层的联通块数量就行了 阅读全文
posted @ 2018-10-13 11:13 Ressed 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 因为只能带一个,买卖价格又一样,所以只要右边的比左边的大,就从这买下来然后带到下一个卖掉就行了(我想到别处再卖的话大不了再重新买回来嘛) 所以给max(w[i]-w[i-1],0)维护一个前缀和就行了 阅读全文
posted @ 2018-10-13 11:09 Ressed 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 一个JSB做法 由$\frac{x*b0}{gcd(x,b0)}=b1$,可得$\frac{x}{gcd(x,b0)}=\frac{b1}{b0}$ 设$b2=\frac{b1}{b0}$ 所以对$b2$和$b0$分解质因数,可以得到结论: 1.x必须包含b2中所有的质因数,且个数等于它在b2和b0 阅读全文
posted @ 2018-10-13 11:01 Ressed 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 直接建图边数太多,用线段树优化一下 然后缩点,记下来每个点里有多少个炸弹 然后按拓扑序反向dp一下就行了 阅读全文
posted @ 2018-10-13 10:44 Ressed 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 我在做spfa的时候,如果有一个点被更新了超过N次,证明这个图里是有负环的。 (神TM输出YE5和N0) 阅读全文
posted @ 2018-10-13 10:35 Ressed 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 首先floyd求出来每两点间的最短距离,然后再求出来从某点买再到某点卖的最大收益 问题就变成了找到一个和的比值最大的环 所以做分数规划,二分出来那个答案r,把边权变成w[i]-r*l[i],再做spfa判正环就行了 (本来想偷懒用floyd判正环,结果T了) 阅读全文
posted @ 2018-10-13 10:33 Ressed 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 直接设f[i][j][k][l][2]是在(i,j)时两人分数是k,l,复杂度会爆掉 但其实只需要知道两人分数只差就行了 所以设f[i][j][k][2],k是分数之差%(K+1),最后一位表示该谁走了 阅读全文
posted @ 2018-10-13 10:28 Ressed 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 易证我们走的时候只会从某一层的某端点走向另一端点、然后走向下一层的某端点.. 所以建图然后dijkstra就行了 调了一年以后发现dijkstra写错了 阅读全文
posted @ 2018-10-13 10:26 Ressed 阅读(437) 评论(0) 推荐(0) 编辑