就在昨天,我写了一篇关于我这一年来的算法总结,同时也进行了2022普及组的模拟考,内容是2021年的普及组题目,和比赛一样,3个半小时,一分不少,从下午3:00到6:30,最后成绩是360分。
今天,我就给大家总结一下2021年普及组的各个题目,我呢,是从“牛客竞赛网”上面找到的,因为我填的入门组难度,所以它就给我推荐往年的普及组题目。
先从第一题开始,第一题是“分糖果(Candy)”,看一下题目,很容易理解。这道题总的来说比较简单 几乎就是一道纯基础题,只需要判断一下r-小于等于l的n的倍数中最大的数,用sum来记录一下 sum=r-(l/n*n);如果ans>=n就肯定可以带回去<n中最大的糖果数目也就是n-1,不然sum就是它最大能带走的糖果数目。
简易的代码:
#include<bits/stdc++.h>
using namespace std;
long long n,l,r,ans;
int main()
{
cin>>n>>l>>r;
ans=r-(l/n*n);
if(ans>=n)
printf("%lld",n-1);
else
printf("%lld",ans);
return 0;
}
注意一下:
由于数据已经达到了10^9那样庞大的数字,所以建议用long long 来存储,然后,建议一般用scanf和printf,因为这种输入输出法比cout和ci快上一些。
然后我们来看一下第二题“插入排序”,插入排序我们都知道,是世界十大排序算法之一,如果我们要求第三个元素排序后的位置,0+1+1=2,那么排序后的位置就是2,这个例子就是样例的最后一组查询