一些Codeforces的水题

713A

用二进制状态记录每一位的奇偶性,把答案存在数组里

713B

第一步要把两个矩形隔离,要么从x轴隔开,要么从y轴隔开,判断的条件一定是两边区域都各有一个完整的矩形。接下来二分矩形的四条边就行了

713C

考虑一个稍简单些的版本,让原序列不递增,那么对于相邻的a,b,要么让a变到b,要么让b降到a,把所有数排序离散化后,dp[i][j]表示到第i个数结尾为从小到大第j个数的最优值。如何推广到严格递增呢,只要所有位置减去相应的i即可

713D

首先用dp[i][j]处理出以i,j为右下角的最大正方形边长。之后利用二维的rmq(预处理是先处理一维,再处理一维,询问是四个角求最大值)和二分答案,对于询问x1,y1,x2,y2,如果二分的长度为len,那么查询的范围是(x1+len-1,y1+len-1,x2,y2),对于我而言,还是一道思维难度比较高的题目.

765E

对于一个非根节点,如果有两条长度不同的链显然无法合并,第一遍dfs先找到这样的节点,在第二遍dfs的时候把它作为根,如果此时无可行解那么问题无解,否则对于一个长度为l的链,如果l为偶数我们可以对它折半.

765F

这道题首先要考虑离线做法,记f[i]为以i为左端点的询问答案,显然f[i]递增,我们用线段树维护一个有序区间(类似于归并排序)和这个区间的f[i]的最小值,把所有的询问按照右端点降序排序,按照位置往里面一个个加数,每次新加入的数都会对之前的f[i]产生影响,用线段树来完成修改操作。
对于一个区间,首先找到和新加入的val相邻的两个数,同时记录val目前找到的最小差值nowans,如果这两个数和val的差值都大于nowans便不必更新,否则继续递归更新下去,可以感受到更新的次数是有限的(大概是log级别),所以不会超时.

776D

有点像二分图,存两种边,一种是一定要颜色相同的,一种是一定颜色不同,直接dfs染色判定即可.

776E

求n的(k+1)/2次欧拉函数,没取模WA了一次

777E

先按照b降序排序,如果b相同按照a降序排序,用一个数据结构(树状数组)对于a维护h的最大值,每次查找1-b-1范围内的最大值实现logn的转移

778A

想到二分答案就很容易了,直接O(n)判定

778B

一道字符串处理题,由于表达式里要么是?,要么是以前出现过的变量名,所以用mp直接存下来就可以了,对于?,可以从高位到低位枚举0和1,取最优解

778C

这个题是个暴力题,要求是删除一层的节点,利用字典树的规则合并,使得剩下的节点最少。由于字典树的边数很少,所以似乎直接模拟就行了。如果要删除的节点为x,那么找到fa[x],新建一个节点p,将son[fa[x]]依次与p合并,合并的过程就是递归再把所有的边合并,直到不能合并为止.做完都感觉画风怪怪的。

781A

n>=3时,答案就是max{3,son[p]+1},染色的方案一遍dfs就可以了,注意不要和fa,fa[fa]节点颜色重复

781B

首先让所有的队都选第一种组合,如果x遇到冲突就work(x),work的过程是先将x改成第二种,如果仍有冲突,假设为y,如果y已经是第二种直接输NO,否则work(y),递归下去。贪心+模拟题

781C

求一个图用路径覆盖的方案。显然这个图等价于它的某一棵生成树,我们dfs这棵树建出一种序列,每次访问这个节点都要把节点存到这个序列里(每访问一个son,fa就会出现一次),显然整个序列的长度最多为2*n。感觉只要想到第一步的生成树应该就不难了。

781D

注意到第一个走的路确定后,后面的路线就全都确定了。所以我们用dp[i][c][x][y]表示第一条走的路为c,x是否能走2^i步到达y,然后用一个倍增floyd的形式完成转移(压位降低复杂度)。接下来我们由高到低枚举i,从1出发,将能到达的点都放到队列模拟行走的过程。由于题目的性质,i每下降一次,c^=1.这题的关键也正是这个性质,所以用倍增的方法解决了这个问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值