
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
直接递归会超时,我们可以打表找找规律。通过找规律我们不难总结出一个公式,答案就是781448427。也就是2的n/2次方。
这道题的贪心策略就是每次都选能阻碍最多的横线或者纵线,我们可以把每个位置和阻隔学生数量绑定在一起,可能会想到哈希表或者数组,但是我们还要根据阻隔学生数量进行排序,so我们得开个结构体,然后写个cmp来规定排序才好,最后再把排好序的,如果阻隔数量相等的,按位置从小到大排序,也就是说我们需要排两次序。好的,我们来写一下代码吧。
加入命令 -std=c++11 注意是小写哦。
step2:进窗口 num++,如果是第一幅画的话不记录差值,如果不是第一幅的话计算差值加入ret。初始化:初始化l=1,r=1,然后用num记录画的数目,ret记录差值和。本题如果想让极差最小的话,一定是先排好序,从小到大选。出窗口:ret-=a[l+1]-a[l] l++这时候我们可以用滑动窗口来做。如果num==m,记录结果。step3:判断+出窗口。好的,我们来写一下代码。
【代码】蓝桥杯备考:签到题之糖果。
当然,我们需要注意,比如我们查找大于等于5,我们的数组1,2,3,4 最大只能查找到4,它是不符合要求的,我们直接返回0就行了。我们可以先二分查找大于等于x1的数的最小坐标,然后再二分小于等于x2的最大坐标。同样如果是 7 8 910 查找小于等于5的,也只能查到7,也直接返回0。这道题找大于等于x1并且小于等于y1的数字个数。好的,既然如此,我们来写一下代码。然后求区间长度就对了。
第二个细节是,我们要让小A吃掉哪个盒子里的糖果?吃靠左的话,靠右的加起来糖果总数偏大了,我们要求吃的糖果最少,所以应该吃掉靠右的盒子的糖果。这种情况,我们只要让第0个和第一个盒子的糖果加起来,然后吃掉1盒子多余的糖果就行了。如果两个盒子糖果总数超过那个数了,我们只要让小A吃掉sum-x个糖果就行了。第三个事情就是,如果吃的糖果超过了靠右盒子的量怎么办?这道题是道贪心的问题,我们要相邻的两个盒子糖果
这道题按题意模拟即可。
那如何找出现的位置呢?我们直接用find显然不太合适,因为有可能要查找的单词包含在某一个大单词里面,我们可以对之前的字符串进行预处理,我们要查找的是空格单词空格,我们把文章首尾都加上空格,把要查找的单词也变成空格+单词+空格,这样我们再查找的时候就是正确的了。题目的意思是给定一个单词,找到这个单词在题目中出现的位置和出现次数,我们输入文章的时候,只用cin的话不能全部输入,我们必须要用getlin
我们可以这样,我们把数组下标为0的位置设置成1,那么f[1]=f[0] f[2] = f[1]+f[0]=2。如图这种情况就越界了,我们如果把1到k的值全初始化也不现实,会增加程序的时间复杂度。f[3] = f[0]+f[1]+f[2] = 4这个是可以的。step3:初始化 初始化要保证 1.数组不越界 2.推导结果正确。step1 定义状态表达f[i]表示到第i个台阶的方案数。老规矩,按照dp







