牛客小白月赛51
1.AtCoder Beginner Contest 293(C,D ,E,F)2.Educational Codeforces Round 115 (Rated for Div. 2)(D,E)3.AtCoder Beginner Contest 294(E,F,G)4.AtCoder Beginner Contest 2465.中国石油大学(北京)第三届“骏码杯”程序设计竞赛(同步赛)(D,E,F)6.Codeforces Global Round 16(D,E,F)7.AtCoder Beginner Contest 209(D,E)8.Monoxer Programming Contest 2022(AtCoder Beginner Contest 238)(E,F)9.AtCoder Beginner Contest 285(B,D,E,F)10.AtCoder Beginner Contest 242(D,E)11.AtCoder Beginner Contest 223(D,E,F)12.AtCoder Beginner Contest 207(D,E)13.AtCoder Beginner Contest 247(E,F)14.AtCoder Beginner Contest 226(E,F,G)15.AtCoder Beginner Contest 229(F,G)16.AtCoder Beginner Contest 273(E)17.AtCoder Beginner Contest 286(G)18.AtCoder Beginner Contest 287(C,D,E,F)19.AtCoder Beginner Contest 288(D,E,F)20.AtCoder Beginner Contest 289(E,F)21.AtCoder Beginner Contest 290(D,E)22.AtCoder Beginner Contest 292(E,F,G)23.AtCoder Beginner Contest 298(D,F)24.AtCoder Beginner Contest 299(E,F)25.AtCoder Beginner Contest 300(E,F)26.AtCoder Beginner Contest 302(E,F,G)27.AtCoder Beginner Contest 253(E,F)28.AtCoder Beginner Contest 245(D,E,F)29.AtCoder Beginner Contest 248(D,E,F) 30.AtCoder Beginner Contest 206(Sponsored by Panasonic)(E,F)31.Codeforces Round 875 (Div. 2)(D)32.AtCoder Beginner Contest 178(E,F)33.AtCoder Beginner Contest 307(E,F,G)34.CodeTON Round 5 (Div. 1 + Div. 2, Rated, Prizes!)C35.Educational Codeforces Round 151 (Rated for Div. 2)(C,D)36.AtCoder Beginner Contest 212(E,F)
37.牛客小白月赛51
38.2022年浙大城市学院新生程序设计竞赛(同步赛)(补题)39.Codeforces Round #770 (Div. 2)B,C40.Codeforces Global Round 24(B,C)41.Codeforces Round #836 (Div. 2)C42.Codeforces Round #840 (Div. 2) C43.Good Bye 2022: 2023 is NEAR C44.Codeforces Round #765 (Div. 2)A,B,C45.Codeforces Round #766 (Div. 2)C,D46.Codeforces Round #841 (Div. 2) and Divide by Zero 202247.Codeforces Round #767 (Div. 2)C ,D 48.Codeforces Round #768 (Div. 2)C ,D49. Codeforces Round #769 (Div. 2) B,C50.Educational Codeforces Round 122 (Rated for Div. 2),C,D51.Educational Codeforces Round 119 (Rated for Div. 2)52.AtCoder Beginner Contest 25853.Codeforces Round #763 (Div. 2)C54.Codeforces Round #843 (Div. 2)(B,C,D,E)55.Educational Codeforces Round 141 (Rated for Div. 2)(B,C,D)56.AtCoder Beginner Contest 275(B,C,D,E,F)57.Codeforces Round #842 (Div. 2)(B,D,E)58.AtCoder Beginner Contest 284(D,E,F)59.The 14th Jilin Provincial Collegiate Programming Contest(补题)60.牛客小白月赛65(C,D,E,F)61.AtCoder Beginner Contest 281(D,E,F)62.Good Bye 2021: 2022 is NEAR D63.Hello 202364.The 15th Jilin Provincial Collegiate Programming Contest(补题)65.Codeforces Round #781 (Div. 2)C 66.Hello 2022(B,D)67.AtCoder Beginner Contest 272(D,E)68.Codeforces Round 751 (Div. 2)(D)69.Codeforces Round 856 (Div. 2)(C,D)70.Codeforces Round 752 (Div. 2)(C,D,E)71.Codeforces Round 855 (Div. 3)(E,F)72.AtCoder Regular Contest 131(A,B,C)73.Educational Codeforces Round 144 (Rated for Div. 2)(A,B,C,D)74.Codeforces Round 853 (Div. 2)(C,D)75.牛客练习赛109(C,D)76.AtCoder Beginner Contest 291(Sponsored by TOYOTA SYSTEMS)(D,E,F)77.Educational Codeforces Round 143 (Rated for Div. 2)(A,C,D)78.Codeforces Round #852 (Div. 2)(C,D)79.Educational Codeforces Round 118 (Rated for Div. 2)(D,E)80.AtCoder Beginner Contest 236(D,E,F)81.Codeforces Round #850 (Div. 2, based on VK Cup 2022 - Final Round)(B,D)82.Codeforces Round #848 (Div. 2)(B,C,D)83.TypeDB Forces 2023 (Div. 1 + Div. 2, Rated, Prizes!) (B,C,D) 84.Codeforces Round #846 (Div. 2)(B,E) 85.Educational Codeforces Round 142 (Rated for Div. 2)(C,D)86.2023牛客寒假算法基础集训营687.Codeforces Round #845 (Div. 2) and ByteRace 2023(A,B,C)88.2023牛客寒假算法基础集训营5 89.2023牛客寒假算法基础集训营3 90.2023牛客寒假算法基础集训营291.2023牛客寒假算法基础集训营192.Educational Codeforces Round 120 (Rated for Div. 2) C,D93.AtCoder Beginner Contest 254(C,D,E,F) 牛客小白月赛51
A:选择题
题目描述
你可以选择一个奇数和一个偶数,使他们的和尽可能的大,但是要小于n。
请问他们的和最大为多少。
奇数:不是二的倍数。
偶数:二的倍数。
思路:一个偶数加上一个奇数只能为奇数,并且答案只能小于n,那么答案只有n-1,和n-2两种,判断n的奇偶性,如果为偶数,输出n-1,奇数,输出n-2
点击查看代码
#include <bits/stdc++.h>
using namespace std;
int main ()
{
int n;
cin>>n;
if (n&1)
{
cout<<n-2;
}
else
{
cout<<n-1;
}
return 0;
}
B:填空题
题目描述
你有一个数组,你需要将数组里面的每一个000变成一个正整数,使得整个数组是严格上升的。
请你输出整个数组的和,如果有多种方法,请输出和最小的值,如果无法变成一个上升的数组,那么输出−1
点击查看代码
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e6+10;
int a[maxn];
int main ()
{
int n;
scanf ("%d",&n);
int ans=0;
for (int i=1;i<=n;i++)
{
scanf ("%d",&a[i]);//
if (a[i]<=a[i-1]&&a[i]!=0)//如果有一个非0的数不符合严格上升的条件,就输出-1
//非0的是不能改变的
{
printf ("-1");
return 0;
}
if (a[i]<i&&a[i])//因为a[i]>0,那么当a[i]!=0是,在第i个数最小就是i,否则可能
//前面一定有数大于这个数
{
printf ("-1");
return 0;
}
if (!a[i])//只要a[i]是0,就把a[i]变成一个当前最合适的数,
{
a[i]=a[i-1]+1;//a[i-1]就是最合适的数,既大于前面的数,有可以让自己尽量的
//小,防止大于后面的数,
}
ans+=a[i];
}
printf ("%d\n",ans);
return 0;
}
C:零一题
题目描述
你有a个0,和b个1,你需要用这些01字符构造出一个长度为a+b的01字符串,随后小红会进行无数次操作,每次操作会选择一对相邻且相同的字符,并将他们删除,然后将剩余的字符串拼接起来。直到无法进行该操作为止。
你需要保证你构造出的字符串在经过小红的的无数次操作之后,剩余字符串长度为x。
点击查看代码
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e5+10;
int a,b,x;
int main ()
{
scanf ("%d%d%d",&a,&b,&x);
x=x/2;//剩余的一定是01,x/2,就是剩余的0(1)的个数
a=a-x;//删除的0的个数,下同
b=b-x;
if (a&1||b&1||a<0||b<0)//因为消除的是成对的,所以a,b,一定是偶数
{
printf ("-1\n");
return 0;
}
if (a)
{
for (int i=1;i<=a;i++)
printf ("0");
}
if (b)
{
for (int i=1;i<=b;i++)
printf ("1");
}
if (x)
{
for (int i=1;i<=x;i++)
printf ("01");//剩余的01串
}
return 0;
}
D:操作题
你有两个数a和b,其中a等于0,b等于1,你有2种操作:
操作一:你可以选择a的值加上b或b的值加上a。
操作二:你可以选择a或b乘以数字x。
请你输出一个操作次数不超过400次的操作序列,使得a或b中有一个值等于n。
点击查看代码
#include<stdio.h>
#include <stdlib.h>
#define ll long long
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
ll n,m;
int x,k=0;
scanf("%lld%d",&n,&x);//可以把n看成是一个x进制数
m=n;
while(m)//n转换成x进制数需要几步
{
k+=m%x+1;
m/=x;
}
printf("%d\n",k-1);
for(int i=0;i<n%x;i++)
printf("1 a\n");//把a变成n%x
m=n/x;
int flag=0;
while(m)//
{
printf("2 b\n");
// printf ("\n:%d\n",m%x);
for(int i=0;i<m%x;i++)
{
printf("1 a\n");
}
m/=x;
}
}
system("pause");
return 0;
}
E:语法题
详细见代码:
点击查看代码
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e5+10;
long long x;
long long a[maxn],b[maxn];
long long n;
long long solve ()
{
long long minn=1;
for (long long i=1;i<=x;i++)
{
scanf ("%lld%lld",&a[i],&b[i]);
minn=max(minn,a[i]);
}
scanf ("%lld",&n);
long long ans=0;
if (n>=minn)
{
ans++;
}
minn=1;
//不能大于1e9,如果一个数能够进入条件语句,那么他一定小于1e9,
//1e9除以一个正整数是一定不会得到一个1e9以上的结果的,所以如果n大于1e9,
//我们可以直接return。
if (n>1e9)
{
return ans;
}
long long l,r;
for (long long i=1;i<=x;i++)
{
l=n*b[i],r=(n+1)*b[i]-1;//[l,r]是满足x/bi<=n的x的取值范围
//并且a[i],必须是递增的,举例子,
//当a[i]=5,a[i+1]=2时,a[i+1]不能进入循环
l=max(l,minn),r=min(r,a[i]-1);//[l,r]和[minn,a[i]-1]的交集,两个条件都满足
minn=max(a[i],minn);//下一轮的递增区间左边的值
if (l>r) continue ;//区间是不可能这样的的,如果是这样就不是区间
ans+=(r-l+1);//区间的长度,里面的每一个数就是n的取值,是不会重复的,因为
//我们有一个条件就是a[i]必须是单调递增的,所以这个区间也是单调递增的,不会存在
//重复的n的取值
}
return ans;
}
int main ()
{
scanf ("%lld",&x);
printf ("%lld\n",solve());
return 0;
}
F:平均题
点击查看代码
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <vector>
#include <numeric>
#define endl '\n'
#define ll long long
using namespace std;
const int N = 1e5 + 10, mod = 1e9 + 7;
ll a[N],sum[N];
ll n;
/*ll ksm(ll a,ll b)
{
ll res = 1;
while(b)
{
if(b & 1)res = res * a % mod;
a = a * a % mod;
b >>= 1;
}
return res;
}*/
ll ksm (ll x,ll p)//x的p次幂
{
ll res=1;
while (p)
{
if (p&1)
{
res=res*x%mod;
}
x=x*x%mod;
p>>=1;
}
return res;
}
ll solve()
{
ll res=0;
ll ans=0;
for (int i=1;i<=n;i++)
{
int l=i,r=n-i+1;
if (l<=r)
{
ans=(ans+(sum[r]-sum[l-1]+mod)%mod)%mod;
}
else
{
ans=(ans-(sum[l-1]-sum[r]+mod)%mod)%mod;
}
res=(res+ans*ksm(i,mod-2)%mod+mod)%mod;//ksm(i,mod-2)相当于1/i
}
/*ll res = 0;
ll ans = 0;
for (ll i = 1 ; i <= n ; i ++)
{
ll l = i, r = n - i + 1;
if (l <= r)
ans = (ans+ (sum[r] - sum[l - 1] + mod) % mod) % mod;
else
ans = (ans- (sum[l - 1] - sum[r] + mod) % mod) % mod;
res = (res + ans* qmi(i, mod - 2) % mod + mod) % mod;
}
*/
return res % mod;
}
int main()
{
//ios::sync_with_stdio(false);//加快cin的速度,cin 的运行时间为2ms
//单独的cin :68ms
//cin.tie(nullptr);
int T = 1;
while(T --)
{
//cin>>n;
scanf("%lld",&n);
for (ll i = 1 ; i <= n ; i ++)
{
//cin>>a[i];
scanf ("%lld",&a[i]);
sum[i] = sum[i - 1] + a[i];
}
printf ("%lld\n",solve());
}
return 0;
}
ps:(D,E,F思路来自于大佬)
如有问题,请斧正!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!