随笔分类 -  比赛

摘要:A:大胆猜想合法点不会很多,于是暴力检验,一旦发现不合法就break,可以random_shuffle一下。 B:暴力的想法是枚举最后所有数的gcd的某个质因子。于是考虑乱搞,先求出每个质数是多少个数的公共因子,显然可以得到只删数的最优答案;并且注意到要使所有数都变成偶数需要的代价不会超过nY看起来 阅读全文
posted @ 2019-03-07 22:21 Gloid 阅读(218) 评论(0) 推荐(0)
摘要:A:显然构造一组只包含1和2面值的数据即可。 B:显然两种pizza的分配应尽可能贴近第二种更优和第一种更优的人数关系。于是在这个边界附近±1暴力枚举一下,然后贪心非常显然。 D:注意到在某一天卖出再买进对答案是没有影响的。于是维护一个小根堆,每次取出堆顶与当前天价格比较,若能赚钱则计入答案并将堆顶 阅读全文
posted @ 2019-03-07 10:37 Gloid 阅读(159) 评论(0) 推荐(0)
摘要:A:显然应该尽量拆成4。如果是奇数,先拆一个9出来即可。 B:注意到由异或的消去性,事实上可以通过2n次询问得到所有n2种询问的结果。然后若第一个数确定,整个排列就确定了,暴力枚举即可。 C:同行同列相邻点连边,对每个连通块分别考虑。如果连通块构成一棵树,显然只要不选择所有直线,每种方案都能被构造出 阅读全文
posted @ 2019-03-06 15:21 Gloid 阅读(100) 评论(0) 推荐(0)
摘要:A:显然从大到小排序后贪心放在第一个能放的位置即可。并查集维护。 B:对前后缀处理出答案,two pointers即可。 C:根据查询矩形边界将平面分成九块,讨论两端点位置即可,主席树支持查询矩形内点的个数。 D:显然每天要么不用优惠,要么就尽量用优惠。并且显然如果某天可以优惠到免费,使用优惠不会更 阅读全文
posted @ 2019-03-06 01:14 Gloid 阅读(156) 评论(0) 推荐(0)
摘要:A:显然答案与原数的差不会很大。 B:即求不处于最右端的位置中有多少个1,随便维护。 C:按位考虑,倒序贪心,必须改(即前缀与后一个串相同且该位较大)的时候才改。全部扫过一遍后可能仍不合法,需要按同样的做法重新扫一遍,并且可以证明扫两遍之后依旧不合法则无解。 D:考虑枚举区间max,显然只要区间内存 阅读全文
posted @ 2019-03-05 15:38 Gloid 阅读(231) 评论(0) 推荐(0)
摘要:A:考虑每一位的改变情况,分为强制变为1、强制变为0、不变、反转四种,得到这个之后and一发or一发xor一发就行了。 B:先按k=1的情况处理一下。然后若考虑首尾相接是否会超过m个,若会则删掉,若恰好有k个则继续删。最后如果只剩下一种数特殊讨论。坑点比较多。 C:考虑建图,a向b连边表示a可以打败 阅读全文
posted @ 2019-03-05 15:12 Gloid 阅读(157) 评论(0) 推荐(0)
摘要:A:每次看是否有能走回去的房间,显然最多只会存在一个,如果有走过去即可,否则开辟新房间并记录访问时间。 B:注意到单个字母一定是出现次数最多的子串之一。所以如果给定字符串中有字符重复出现,一定无解。并且可以得到答案字符串中也一定没有字符重复出现,其长度<=26。于是怎么暴力都行了。考虑将所有串按长度 阅读全文
posted @ 2019-03-04 15:41 Gloid 阅读(134) 评论(0) 推荐(0)
摘要:B:注意到nc/2<=m,于是以c/2为界决定数放在左边还是右边,保证序列满足性质的前提下替换掉一个数使得其更靠近边界即可。 D:相当于求有多少个-1 0 1构成的序列满足前缀和始终不小于0且总和在[l,r]中。这个前缀和限制非常容易想到卡特兰数,考虑类似的推式子方法,写出dp式子然后造一个网格图, 阅读全文
posted @ 2019-03-02 01:21 Gloid 阅读(140) 评论(0) 推荐(0)
摘要:B:即使看到n<=22也应该猜到这只是为了写spj。将每个数替换为恰好比他大的数即可,最大值替换为最小值。这样原序列中不包含最小值的集合显然都满足条件,并且容易发现包含最小值的集合的变化量都是最大值-最小值+序列其他两个数的差,这显然是不会为0的。 C:容易想到随便跑一棵MST然后LCT维护MST, 阅读全文
posted @ 2019-03-01 23:11 Gloid 阅读(209) 评论(0) 推荐(0)
摘要:B:考虑2*m怎么构造。因为要求相邻的数不能再相邻,容易想到黑白染色之类的东西,考虑染个色然后大概把黑点扔一边白点扔一边。显然m<=3时无解。对m>4,m为偶数时,如1 2 3 4 5 6 7 8 9 10 11 12,就变换成1 3 5 2 4 6 8 10 12 7 9 11;m为奇数时,如1 阅读全文
posted @ 2019-02-28 22:02 Gloid 阅读(150) 评论(0) 推荐(0)
摘要:C:显然可以设f[i][S]为当前考虑到第i位,[i,i+k)的状态为S的最小能量消耗,这样直接dp是O(nC(k,x))的。考虑矩阵快速幂,构造min+转移矩阵即可,每次转移到下一个特殊点然后暴力处理掉该点的贡献。可以预处理2p次转移矩阵进一步加速。 D:首先考虑如果我们钦定了其中k条边一定在树中 阅读全文
posted @ 2019-02-27 19:57 Gloid 阅读(165) 评论(0) 推荐(0)
摘要:D:类似于noip2018d1t3,子树内的链应该贪心的尽量合并而不是拆开。则设f[i]为i子树内满足选的链尽量多的情况下根所在的链的最长长度即可。于是可以线性对某个k求得答案。 注意到长度为k的链不多于n/k个。类似于整除分块可以得到答案不同的k只有O(√n)种。于是我们每做一次dp,可以二分一下 阅读全文
posted @ 2019-02-26 22:49 Gloid 阅读(189) 评论(0) 推荐(0)
摘要:D:首先考虑如果给定白棋位置,如何判断胜负。黑棋获胜需要四个方向都有能贴上白棋的棋子。由于每一轮都必须移动,显然先对平面黑白染色一下,只有与白棋所在格异色的黑棋才需要考虑。考虑让一个黑棋去贴上白棋某个方向,那么能贴上的条件是该方向坐标之差>另一方向坐标之差。因为如果其往这边逃的话,这样才有足够的时间 阅读全文
posted @ 2019-02-26 21:49 Gloid 阅读(137) 评论(0) 推荐(0)
摘要:B:显然即相当于能否找一条有长度为奇数的路径使得终点出度为0。如果没有环直接dp即可。有环的话可以考虑死了的spfa,由于每个点我们至多只需要让其入队两次,复杂度变成了优秀的O(kE)。事实上就是拆点。方案的输出在spfa过程中记录即可。然后判一下由起点是否能走进一个环,若可以至少是平局。 C:显然 阅读全文
posted @ 2019-02-26 21:03 Gloid 阅读(180) 评论(0) 推荐(0)
摘要:A:显然对于起点相同的糖果,应该按终点距离从大到小运。排个序对每个起点取max即可。读题花了一年还wa一发,自闭了。 B:考虑构造一个长度为n=2000的序列,前1998项都是0,第1999项是负数,第2000项是正数。设1999项绝对值为y,2000项绝对值为x,则要求n*(x-y)-k=x,也即 阅读全文
posted @ 2019-02-25 02:49 Gloid 阅读(258) 评论(0) 推荐(0)
摘要:A:暴力枚举x2的因子,由此暴力枚举x1,显然此时减去其最大质因子并+1即为最小x0。 B:小根堆维护每堆雪的体积,记录总偏移量,堆顶融化完就将其弹出。 C:建棵trie,维护子树内数的个数,暴力按位贪心即可。 D:降智好题。首先发现BC可以相互转化,变换3次再删掉AAA即可。同时发现每次可以增加A 阅读全文
posted @ 2019-02-24 22:08 Gloid 阅读(127) 评论(0) 推荐(0)
摘要:A:枚举每个点判断是否同时在两个正方形中即可。 B:莫名其妙的题。首先要知道这俩人只想知道他们的共同数字是什么,而不是对方的数字对是什么。先判断啥都不知道能否确定该数字,只要考虑每一对仅有一个数字相同的数对,如果其共同数字都相同,即可确定该数为答案。否则仍考虑每一对可能的数对,如果某一种情况下有一方 阅读全文
posted @ 2019-02-24 19:03 Gloid 阅读(181) 评论(0) 推荐(0)
摘要:A:某个格子被染黑说明该行和该列同时被选中,使用并查集合并,最后看每个集合中是否有未被染黑的格子即可。 B:显然Ei和Ej相邻时最优,在固定Ei后Ek越靠后越优,双指针即可。然而我这个弱智硬是写了个分数规划+单调队列。 C:严格小于=all-严格大于-1,所以即要最小化每天的标记数之和。显然其要大于 阅读全文
posted @ 2019-02-24 13:30 Gloid 阅读(132) 评论(0) 推荐(0)
摘要:B:当n是偶数时无解,因为此时树中有奇数条边,而我们每次都只能删除偶数条。当n是奇数时一定有解,因为此时不可能所有点度数都为奇数,只要找到一个度数为偶数的点,满足将它删掉后,各连通块大小都为奇数就可以了。考虑如何证明这样的点一定存在。钦定一个根后,考虑找到一个度数为偶数的点,满足子树内点度数均为奇数 阅读全文
posted @ 2019-02-23 16:29 Gloid 阅读(156) 评论(0) 推荐(0)
摘要:A:首先将p和q约分。容易发现相当于要求存在k满足bk mod q=0,也即b包含q的所有质因子。当然不能直接分解质因数,考虑每次给q除掉gcd(b,q),若能将q除至1则说明合法。但这个辣鸡题卡常,每求一次gcd都除干净就可以了。 B:先考虑求出每个区间的f值。可以发现若区间长度为x,对于区间内第 阅读全文
posted @ 2019-02-22 00:47 Gloid 阅读(140) 评论(0) 推荐(0)