摘要: 题目链接 题目大意 给你一个长度为n的全排列 你固定一个区间翻转长度k,你每次可以做任意次数的翻转 但是一旦某一次操作选择了数组的某个位置进行区间翻转操作,下一次做区间翻转的位置将会比上一次 更靠右。 要你判断是否能让数组变成升序,满足则输出k 题目思路 首先k一定是固定的,这应该稍微思考一下就懂 阅读全文
posted @ 2021-02-26 16:40 hunxuewangzi 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 这个题目的关键就是 答案模3 要利用这个来突破 令$y=x^2+x+1$ 则$y^n=(y+3x)^n$ 因为$(y+3x)n=C_n0yn+C_n1y^(3x)1+C_n2y^(3x)^2.....$ 显然只有$C_n0yn\mod 3\ne 0$ 那么就可以得证 则$(x^2 阅读全文
posted @ 2021-02-26 12:20 hunxuewangzi 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 看到单点修改,区间查询其实很容易想到线段树 但是这个线段树有点特殊 线段树的每个节点代表这个区间的最小生成树的所有边,用vector存 那么每个节点最多n-1条边 你每次合并使用类似归并排序就是$O(n)$ 如果暴力合并就是$O(nlogn)$ 那么使用归并排序总的时间复杂度就是 阅读全文
posted @ 2021-02-26 11:07 hunxuewangzi 阅读(229) 评论(0) 推荐(0) 编辑