摘要: 传送门 分析 就是飞飞侠这道题...... 我们可以将这张图建成好几层,每一层可以向下一层的上下左右无代价移动,而对于每个点如果付b[i][j]的代价就可以走到比它高a[i][j]的层上。我们用这种方式优化了建边,然后跑个最短路就行了。 代码 阅读全文
posted @ 2018-09-25 15:47 水题收割者 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 我们先二分一下最终的平均值mid,然后让序列中的每一个数都减去这个mid,之后用新序列的前缀和建一棵线段树,枚举起点i,然后求出此时在i+L-1~i+R-1范围内的前缀和的最大值,用这个数减去pre[i],这就是以i为起点的长度为L~R范围内的序列最大值。如果这个值大于0则表示这个mi 阅读全文
posted @ 2018-09-25 15:33 水题收割者 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析我们可以根据性质将这个序列构造成一个环:0,a[1~n],0,a[n~1] 这中间的0是为了起间隔作用的。 我们又知道b[i]=a[i-1]^a[i+1] c[i]=b[i-1]^b[i+1]=a[i-2]^a[i]^a[i]^a[i+2]=a[i-2]^a[i+2] 所以如果这个环进化 阅读全文
posted @ 2018-09-25 15:13 水题收割者 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 考场上傻了,写了个树剖还莫名weila...... 实际就是按顺序考虑每个点,然后从他往上找,一边走一边将走过的边染色,如果走到以前染过色的边就停下。对于每一个a[i]的答案就是之前走过的所有边的数量*2-它自己的深度。 代码 阅读全文
posted @ 2018-09-25 14:03 水题收割者 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 我们不难将条件转换为前缀和的形式,即 pre[i]>=pre[i-1]*2,pre[i]>0,pre[k]=n。 所以我们用dp[i][j]表示考虑到第i个数且pre[i]=j的情况下的方案数。我们发现一一转移的复杂度并不行,于是我们考虑只让dp[i-1][j]转移到dp[i][j*2 阅读全文
posted @ 2018-09-25 13:56 水题收割者 阅读(115) 评论(0) 推荐(0) 编辑