摘要: A.Sum of Odd Integers "原题" 题意:给你 n 和 k ,问你 n 能否由 k 个不同的奇数组成 首先只有 k 和 n 的奇偶性相同才有可能,其次 k 个奇数最小能组成的数必须小于等于 n ,即 k k using namespace std; typedef long lon 阅读全文
posted @ 2020-03-24 12:18 Pecoz 阅读(102) 评论(0) 推荐(0) 编辑
摘要: A.Bad Ugly Numbers "原题" 233333333~ 阅读全文
posted @ 2020-03-22 21:36 Pecoz 阅读(72) 评论(0) 推荐(0) 编辑
摘要: "原题" 题意很好理解,主要通过本题理解一下双指针,我们可以用两个指针i,j分别记录子序列的结尾位置和开头位置。我们先枚举结尾位置 i ,因为要找最长的 不重复 连续子序列,j 就代表从 i 往前最远能够到达的位置。而要判断某个数是否出现过,我们可以开一个数组 s[N] 来记录每个数出现的次数,我们 阅读全文
posted @ 2020-03-22 18:39 Pecoz 阅读(158) 评论(0) 推荐(0) 编辑
摘要: "原题" 三分法,记个模板。 以单峰函数f为例,我们要求极大值点 x ,可以在定义域 [l,r] 上取两个三等分点 lmid , rmid ,把函数分为三段。 1. f(lmid) f(rmid),可令 r = rmid 3. f(lmid) = f(rmid), l = lmid 或 r = rm 阅读全文
posted @ 2020-03-19 11:08 Pecoz 阅读(109) 评论(0) 推荐(0) 编辑
摘要: "原题" 题意:求长度为k且字典序最大的子序列 用了ST表做,相比单调栈多了点代码,但也不是很长。 我们可以用ST表来存区间最值的下标,比如说我们某次要取一个数,就要从上次查询出的最值的后面选,同时为了保证后面的数不会不够选(如果还有k个数没选),我们要保证剩下的区间至少还剩 k 的长度,假设上次选 阅读全文
posted @ 2020-03-18 20:19 Pecoz 阅读(274) 评论(0) 推荐(0) 编辑
摘要: "原题" 本题是一道很经典的单调队列模板题,如果想要O(1)的时间内回答每个窗口,用ST表也可以,但是这道题洛谷上会被卡MLE,所以就来介绍一下单调队列。 因为是初次尝试,也为了便于理解,所以用数组模拟了单调队列 AC代码: 阅读全文
posted @ 2020-03-18 00:30 Pecoz 阅读(104) 评论(0) 推荐(0) 编辑
摘要: "原题" 题意:给你N个点和N 1条边,每条边不相同,大小为 [ 0 , N 2 ]的整数 ,你要使任意两个节点构成的所有(u,v)的MEX(u,v)的 最大值尽可能小 ,MEX(u,v)表示从节点u到节点v的唯一简单路径上没有写在任何边上的最小非负整数(即不等于任何u 到 v 所经过的边的权值的最 阅读全文
posted @ 2020-03-16 18:42 Pecoz 阅读(210) 评论(0) 推荐(0) 编辑
摘要: "原题" 一道很裸的RMQ,线段树专题里刷的,直接打ST表就好。 阅读全文
posted @ 2020-03-12 15:57 Pecoz 阅读(126) 评论(0) 推荐(0) 编辑
摘要: "原题" 这题是一道很坑很坑的题! 题目给的是区间两个端点,并没说谁大谁小,所以在 change 之前要注意 l 和 r 大小,保证l using namespace std; typedef long long ll; ll n,m; ll a[1000005]; struct tree { ll 阅读全文
posted @ 2020-03-11 22:09 Pecoz 阅读(125) 评论(0) 推荐(0) 编辑
摘要: "原题" 这题就是线段树区间修改板子题,没什么坑,主要是熟悉懒标记的使用 这题我看了网上很多题解,大多是不使用结构体而是开了数组,并且 change 函数的形参比较多。 但我坚持使用了《算法竞赛进阶指南》的写法,所以在做这题时debug了好久,一直找不到错误,但最后 AC 时的快感真是太爽了! 主要 阅读全文
posted @ 2020-03-11 21:50 Pecoz 阅读(117) 评论(0) 推荐(0) 编辑