Codeforces Round #843 (Div. 2) 口胡日记(青大蒟蒻日常掉大分)

我的主页

A1. Gardener and the Capybaras (easy version)

思路 O(n2)暴力,枚举分裂成三部分的两个断点,提取三个部分,按照题意模拟即可。

A1题代码

A2看一眼数据范围觉得很难不会 s k i p skip skip

B. Gardener and the Array

B读完题一眼没思路,直觉上感觉一定是全部 o r or or起来然后去掉一个数这样最优,还能保证题目所说要求。然后手写一个交了一发就a了。

B题代码

C. Interesting Sequence

C题一般是我的强项,题目给定 n n n, x x x m m m,然后可以很容易的发现 a n d and and的性质,只考虑什么时候变0(也就是消掉1的过程), a n d and and 1对最后的结果毫无影响,可以发现只跟二进制最后一个1出现的位置有关,也就是 l o w b i t ( x ) lowbit(x) lowbit(x)这个位置,只有这个位置才会影响题目所要求式子,最后式子一直暴力一定会变为0,该题就转化为 l o w b i t ( x ) lowbit(x) lowbit(x)暴力,对 n n n暴力加上 l o w b i t ( n ) lowbit(n) lowbit(n),直到小于等于 x x x为止,最后判断是否等于 x x x即可。
C题代码

D. Friendly Spiders
赛后立刻被fst
赛时思路大致是对的,细节问题。
这是一道很容易想到的图论建图问题,感觉比C题要好想许多。我们考虑维护gcd连边的情况,我们想办法建图,套路性地可以想到调和函数维护某个数的倍数,对于一个数 x x x来说,他的任意两个 x x x的倍数他们的 g c d gcd gcd一定是 x x x的倍数,所以就可以保证题目所说的 g c d gcd gcd大于1的情况,需要注意的是题目卡掉了一些不太正确的建图,我们在枚举 x x x的时候,我们只需要枚举当 x x x为质数的情况。然后这题在赛时wa了几发后还是过掉了。

fst代码

E.The Human Equation
这道题是一个非常典型的傻逼题,赛时考虑到交替出现,于是我想着维护两种变量,一种是最后一个数为正数的序列个数,一种为最后一个数为负数的序列个数,然后硬模拟一遍。
比如说当我们遍历到正数的时候,我们肯定要引用最后一个数为负数的序列,插入到这些序列的后面,如果不够的话就补上,然后就转化为最后一个数为正数的序列,再加到最后一个数为正数的序列个数上。这样贪心一定是最优的,因为满足有多少用多少的原则,然后暴力模拟即可。

E题代码

可惜的是,赛时用小号打的,没想到能打出这么好的效果,在赛时还剩40min的时候,重新写了一遍ac代码交到大号上,结果 d d d被fst上大分失败!2000分体验卡一日游QaQ。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值