2021杭电“MINIEYE杯”(9) 部分题目题解

solution
  • T1:
    • 老套路,想一想把 x x x分成二进制,然后就可以在 O ( l o g x ) O(logx) O(logx)复杂度求出答案。
    • 但是这样子做一定操作会超过50次,所以考虑不是二进制,而是某个 k k k进制。
    • 这样子,我们需要先预处理出 [ 1 , k ] [1,k] [1,k]的数——实际上我们只要预处理 [ 1 , k / 2 ] [1,k/2] [1,k/2] k k k,因为有减法。
  • T4:
    • 首先把曼哈顿距离转化成切比雪夫距离,这样 x x x轴和 y y y轴坐标就独立了。
    • 转化成一维问题以后,发现可以再次转化成那个经典的卡特兰数的向上向右走问题,只不过是有正负两个限制,容斥一下就好了。
  • T9:
    • 显然可以把每一种颜色分开考虑,然后建立二分图模型,对于 ( x , y ) (x,y) (x,y)表示从左边的 x x x号点向右边的 y y y号点连边。
    • 这样就是经典的二分图边染色问题,颜色数量是度数最大点的度数。
    • 但题目要求要构造一种方案,有两种方法:
      • 第一种方法:考虑一不做二不休,干脆直接做多次最大匹配,每一次匹配的边染同一种颜色。
      • 第二种方法:对于一条边能染色就染色,不能染色就想二分图匹配一样寻找增广路,考虑如果对于一条边 ( x , y ) (x,y) (x,y) x x x可以染颜色 c 1 c1 c1 y y y可以染颜色 c 2 c2 c2,那么我们可以把当前边染成 c 1 c1 c1,但这样子 y y y就有两条染成 c 1 c1 c1的边了,我们把另一个 c 1 c1 c1边的端点 z z z找出来,让 ( z , y ) (z,y) (z,y)染成 c 2 c2 c2,假如合法的话就结束,不合法就继续。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值