上一页 1 ··· 5 6 7 8 9 10 11 12 13 14 下一页
摘要: 令dp[k][j]表示,走k步到j的方法。我们首先预处理,走到第i个位置的时候,可以走到的地方,那么每一次,dp[k+1][a]~dp[k+1][b](a和b是j所能到的左右端点)+=dp[k][j],可以看到这是区间更新,那么我们利用差分数组来更新即可。其中自己也是一个断点。 阅读全文
posted @ 2020-03-16 15:23 LORDXX 阅读(109) 评论(0) 推荐(0) 编辑
摘要: A B 因为可以取无限个序列,那么去重后,有多少个数字最长上升序列就是多少。 C 首先,必须有一条边,权值等于0。在不包含这条边的所有路径总,mex=0。 当包含0的时候,考虑1的位置,不包含1的路径,mex=1。 即包含0,又包含1的时候,考虑2的位置。当一个结点的子树,当于等于3的时候,我们考虑 阅读全文
posted @ 2020-03-16 15:14 LORDXX 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 首先可以发现,数字从高到低,每一个数字只能放在已经放了的数字所在的行和列中。 因此我们可以得出一个dp 令dp[k][i][j]表示已经有i行,j列被覆盖,同时拥有k个数字。 所以每一次转移,只会多出一行,或者一列,或者都没有。 这道题极度卡常。我今天比赛交了13发才过,注意模运算,乘法次序等。 阅读全文
posted @ 2020-03-14 21:29 LORDXX 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 二维线段树维护区间最值。 阅读全文
posted @ 2020-03-13 21:40 LORDXX 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 二维线段树维护区间最值。 阅读全文
posted @ 2020-03-13 20:11 LORDXX 阅读(104) 评论(0) 推荐(0) 编辑
摘要: E. 令dp[i][status]表示第i位,状态为status的时候,最优解。 对于每一个i的时候,遍历所有status转移,然后判断一下这个时候k能否继续插入。 阅读全文
posted @ 2020-03-10 11:37 LORDXX 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 动态开点线段树。 首先以机器人的看见距离排序,那么如果遍历到i,那么i前面的机器人,如果i能看见他,反过来他也能看见i。 我们再利用机器人的智商建立权值线段树。每颗线段树中维护+ k范围内能有的机器人数量。 阅读全文
posted @ 2020-03-10 11:00 LORDXX 阅读(93) 评论(0) 推荐(0) 编辑
摘要: A水题 B.题意:重组该序列,使得对于任意ai i!=aj j 我们将a数组排序,从大到小。那么a1 =a2 也就有a1 1 a2 2。故从大到小输出即可。 cpp include include include include include include include include inc 阅读全文
posted @ 2020-03-10 10:57 LORDXX 阅读(198) 评论(0) 推荐(0) 编辑
摘要: ```cpp #include #include #include #include #include #include #include #include #include #include #include #include //#include #include #pragma GCC optimize(2) #define up(i,a,b) for(int i=a;ib;i--) #de 阅读全文
posted @ 2020-03-06 21:32 LORDXX 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 通过观察可以发现,当以u为根节点的时候,向他的子节点转移x次,此时差值固定,即等差数列。 我们就可以通过树链剖分,给每一条链上,维护线段树,保存等差数列。 最后再通过求前缀和的方式求得。 阅读全文
posted @ 2020-03-06 21:28 LORDXX 阅读(107) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 14 下一页