![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
牛客寒假训练营
文章平均质量分 51
seez
njfu
展开
-
牛客寒假训练营 3 I 智乃的密码(二分+前缀和,尺取)
可以发现,是一个典型的尺取(滑动窗口)的题目对于尺取的题目,一般都具有双单调性,以该题为例左指针向右移动,单调递减 右指针向右移动,单调递增对于这种具有双单调性的问题,直接用尺取就可以了需要特别区分的是以下情况越界,不能超过n 必须要在[L,R]范围内 每次跳出内循环都是在第一个满足条件点的后面,需要考虑在n时是否有解由于要求满足条件的区间数,那么在第一个满足条件点~距离R点,这一段区间都是满足条件的,直接加上就可以了避免多余运算问题1,越界:i+R不能越界,所以min..原创 2022-02-02 22:17:03 · 435 阅读 · 0 评论 -
牛客寒假训练营 1 F中位数切分(结论)
原题链接中位数:一段区间[L,R],从小到大重新排列后处于中间位置的数那么发现一个性质,只要这段区间内>=m的个数比<m的个数多,中位数就>=m(区间长度为偶数时选择较小的,所以必须>)记cnt>0将一个区间[l,r]分为[l,mid],[mid+1,r],如果左右两个区间的cnt都>0,说明当前区间的cnt也>0,中位数>=m。证明:记????(????, ????)为原数组中???? ???? … ????[????]一段中的元素对原创 2022-02-02 12:17:55 · 407 阅读 · 0 评论 -
牛客寒假训练营 2 A(二分,结论,区间合并)
链接题目没有说所有攻击牌都必须用完,只是说只要存在一种牌的组合,能够恰好满足伤害值就可以了限制条件:某次攻击血量恰好为0 开始有一点法力 法力没有上限性质:我们先假设某次 攻击数为a,回复牌数为b最小伤害和的牌顺序如下,攻击牌和回复牌交替使用1010101010101010101最大伤害和的牌顺序如下,回复牌全部用完,然后再用伤害牌00000000000001111111在最小伤害和和最大伤害和区间中间的元素都可以通过交换攻击牌和回复牌获得,每次把后面的攻击牌放到...原创 2022-01-30 11:47:40 · 583 阅读 · 0 评论 -
牛客寒假训练营2 I 小沙的构造(构造)
题意:() \/<>{}[]这种”对“字符,要同时选用,并且算两个不同字符。必须中心对称,不然反转后不是一个对称串TMKO等其他字符也要关于中心对称,算一个不同字符这个是一个对称串这个不是一个对称串我们可以发现,就是要构造一种特殊的回文串,根据回文串的规律,应该从两端同时选用,所以就必须根据串的大小是奇数或者偶数进行特殊处理串的大小是奇数 需要在正中间加上一个单字符(单字符应该是最后一个单字符),进行偶数操作 串的大小是偶数 在两端同时放置一对对字符,和两个...原创 2022-01-29 11:48:52 · 595 阅读 · 0 评论 -
牛客寒假训练营 H 小沙的数数(二进制贪心,结论)
异或和 =a1 ^ a2 ^ a3 ... ^an最大异或和 <=a1+a2+a3..+an异或操作: a+b>=a^b+2*a&b由于有这个数学公式,那么当且仅当a!=b的时候,a^b可以取到最大值那么由于二进制运算是拆位的,每一位上都是独立运算的,也就是说这一位上选什么都仅由 a数组中 每一个元素在该位的数字决定异或和=m如果想要异或和最大,就必须a数组任意两个相与为0,所以a数组该位上要么为0,要么为1如果a数组某一位相加为1,那么有两种情况..原创 2022-01-29 00:01:14 · 649 阅读 · 0 评论 -
牛客寒假训练营 1 J 小朋友做游戏(前缀和,贪心)
由于两个闹腾的小朋友不能放到一块,那么圆圈最多只能选择n/2个闹腾的小朋友(下取整)由于要求班级的幸福度最大,那么每次都要选择尽可能多的幸福度的小朋友其实是和这题类似的1239. 乘积最大(字符串贪心)_qq12323qweeqwe的博客-CSDN博客但是不同点在于,乘积最大是有负数的,所以这里可以采用其他的方法限制条件最多只能选n/2个闹腾的小朋友 安静的小朋友总数<n/2 直接失败因为幸福度是相加的,而我们要求最大幸福度之和,所以贪心的想,我们把安静的小朋友和闹腾...原创 2022-01-25 19:46:34 · 2287 阅读 · 0 评论 -
牛客寒假集训营1 C cpu(模拟,贪心,dp)
题意:每两个相邻语句需要相隔至少三个位置贪心一下,就是只要相隔3个位置,即j-i==4 就可以了同时在贪心一下,如果要假如空语句,只要对离当前寄存器最近的的寄存器增加空语句,再前面的寄存器就不用管了模拟:输入时记录下离当前寄存器最近的关联寄存器 模拟时找到该寄存器当前的位置 计算位置间隔,判断加多少空语句这里add==3-(p-j)4表示当前寄存器,3表示p所在位置,2表示目标寄存器需要加入的空语句==4-(p-j)-1==4-(3-2)-1#include <...原创 2022-01-25 22:42:32 · 179 阅读 · 2 评论 -
牛客寒假训练营 1 E 炸鸡块君的高中回忆(模拟推公式)
由于有多组测试数组,直接模拟的话会超时,所以需要推出一个公式首先模拟一下带入的过程那么k次带入人数 a+(k-1)*(m-1)=s (1<=a<=m)令 s-1=(a-1)+(k-1)*(m-1)如果a==m,(s-1)/(m-1)=k次 由于最后一次不返回,只需要2k-1时间 如果a!=m, (s-1)/(m-1)=k-1次 由于最后一次不返回 ,此时只需要出去外面一次,即2k+1时间综上所述,就可以处理能回来的情况了此时还有不能回来的情况,...原创 2022-01-25 17:30:13 · 243 阅读 · 0 评论 -
牛客寒假训练营 1 A 九小时九个人九扇门(01背包,打表找规律)
步骤打表找性质,优化 数学模型 dp优化遇事不决打个表,先打表模拟样例找规律右边为数字根,可以发现规律,9进制,逢9进一那么数字根==(数)%9特殊点,当余数==0 时 ,数字根为 9验证验证出,对于前面所有的数字和,第i个数的数字根+数字和的根 == (第i个数+数字和)的数字根数学模型题目要求枚举出所有种组合每个组合都当且仅有两个选择 选 或者 不选直接枚举肯定会超时,想到dp也可以达到枚举的效果,只是记录下了重复的步骤,所以采用dp算法...原创 2022-01-25 14:43:02 · 470 阅读 · 0 评论 -
牛客寒假训练营1 K 冒险公社(线性dp)
先从样例模拟清楚题意:...最后模拟可以得到答案4题意:求前n个岛中最多的绿岛数,根据罗盘预测结果知道实际上绿岛数dp做法由于dp问题的使用条件是1.最优子结构 2.不具有后效性本题是一个线性递推的过程,存在最优子结构由于处于某一点时,当前的状态(什么颜色) 是会影响到后面两座岛屿的所以我们可以多开几维,因为颜色就只有三种,可以枚举出来最后的时间复杂度是O(n*3^4)原问题:考虑前n个岛屿后,最多的绿岛数子问题:考虑前i个岛屿,且i为...原创 2022-01-25 13:39:26 · 318 阅读 · 0 评论 -
牛客寒假集训营 1 H 牛牛看云 (哈希桶+组合数学)
题目的数据范围 n很大,而ai很小,如果用ai来枚举的话,ai^2 只有10^6,符合要求可以先用桶装载每个ai的数量,然后再利用组合数学进行枚举首先,为什么可以用桶,证明:=++...可以发现 对于两个任意的 ai aj 被选中作为一对当且仅当只有一次发现规律 每一对i,j都当且仅当被匹配一次所以 对于 0<=i<=1000 i<=j<=1000对于i==j 对于i!=j #in...原创 2022-01-24 23:08:08 · 279 阅读 · 0 评论