摘要: 题目大意: 给你一个长度为n的数列a,按顺序进行以下m次操作,每次将区间[l,r]中的所有x变成y,问最后数列是怎样的。 思路: 线段树。 每个线段树结点上维护当前区间每个数分别会变成多少。时间复杂度O(m log n)。然而比别人Ofast+循环展开+特定指令集的O(nm)暴力还慢。 O(n^2) 阅读全文
posted @ 2018-01-02 14:42 skylee03 阅读(531) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 给你一棵树,每次选取其中的两个叶子结点,往答案中加上它们的距离,并删去其中一个结点。 你可以自由进行上述操作,使得最后答案最大。 问答案最大是多少,并输出其中一种方案。 思路: 贪心。 首先找出树的直径,然后枚举直径外的叶子结点。 看一下该结点到直径两端距离哪个长,并加上这个距离。 删去 阅读全文
posted @ 2018-01-02 09:34 skylee03 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 给你两个数组a和b,一个栈s。给你两种操作: 1.从a中取出第一个元素,加入s中; 2.从s的顶端取出一个元素,加入b的末端。 一开始a中有n个元素,s和b是空的。 定义数组b是stack-sortable的,当且仅当a中数通过任意操作后,使b称为一个含有n个元素的不下降数列。 现在告诉 阅读全文
posted @ 2018-01-02 07:55 skylee03 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 给你一个数列,翻转其中一个区间,问每次翻转过后逆序对个数的奇偶性。 思路: 首先树状数组求出一开始的奇偶性,然后考虑每次翻转对答案的贡献。 对于整个区间,我们可以把翻转转化成若干次交换。 也就是交换(l,r),(l+1,r-1)... 总共有(r-l+1)/2次。 考虑每一次交换对答案的 阅读全文
posted @ 2018-01-02 07:54 skylee03 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 有两种蛋糕,分别被切成了a块和b块,要把这些蛋糕分到n个盘子里。 要求每个盘子里只能有一种蛋糕,每一种蛋糕都被分。问最优情况下,盘子里至少能放几个蛋糕。 思路: 二分答案。 由于每个蛋糕都要被分,所以二分的上界是min(a,b)而不是a+b。 然后O(n)检验即可。 阅读全文
posted @ 2018-01-02 07:53 skylee03 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 给你三个灯,分别以k1秒一次,k2秒一次和k3秒一次的频率闪烁着。 你可以自定义三个灯开启的时间,问是否有一种方案,使得max(k1,k2,k3)秒之后,每秒钟都至少有一盏灯闪烁。 思路: 很显然,当三盏灯频率都大于4秒一次时,不存在答案,那么我们只需要大力讨论4秒以内的情况即可。 阅读全文
posted @ 2018-01-02 07:53 skylee03 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 给你一个数列,问数列中最小数的最近距离。 思路: 直接模拟即可。 阅读全文
posted @ 2018-01-02 07:52 skylee03 阅读(127) 评论(0) 推荐(0) 编辑