20230723小红书笔试代码分享

感觉比春招实习笔试简单多了,但是为啥我当时笔试ak后一面也没有

第一题

#include<bits/stdc++.h>
using namespace std;
using ll=long long;
int main()
{
	ll n,k;
	cin>>n>>k;
	ll ans=k*(1+n)*n/2;
	cout<<ans;
	return 0;
}

第二题排序后双指针或者二分都行

#include<bits/stdc++.h>
using namespace std;

struct seg
{
	int l,r;
	bool operator < (const seg& b) const
	{
		if(l==b.l)
			return r<b.r;
		return l<b.l;
	}
};
vector<seg> a;
int n,m,k;

int main()
{
	scanf("%d%d%d",&n,&m,&k);
	a.resize(m);
	for(int i=0;i<m;i++)
		scanf("%d%d",&a[i].l,&a[i].r);
	sort(a.begin(),a.end());
	int now=0,ans=0,id=0,r=0;
	for(int i=0;i<a.size();i++)
	{
		r=a[i].l+k;
		while(id<a.size() && r>a[id].r)
		{
			now+=a[id].r-a[id].l;
			id++;
		}
		int tmp=now;
		if(id<a.size() && r>=a[id].l)
			tmp+=r-a[id].l;
		ans=max(ans,tmp);
		if(id>i)
			now-=a[i].r-a[i].l;
	}
	printf("%d",ans);
	return 0;
}

第三题 3月的还要写个线段树,这次大水题

#include<bits/stdc++.h>
using namespace std;
using ll=long long;

const int maxl=2e5+10;

int n,x;ll ans=0;
int a[maxl];
ll pre[maxl],suf[maxl];

inline void solv()
{
	ans=0;
	scanf("%d%d",&n,&x);
	ans=x;
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&a[i]);
		pre[i]=max(pre[i-1]+a[i],1ll*a[i]);
	}
	a[n+1]=suf[n+1]=0;
	for(int i=n;i>=1;i--)
	{
		suf[i]=max(suf[i+1]+a[i],1ll*a[i]);
		ans=max(ans,suf[i]+pre[i]-a[i]);
		ans=max(ans,x+suf[i]+pre[i]-a[i]-a[i]);
	}
	printf("%lld\n",ans);
}


int main()
{
	int t;
	scanf("%d",&t);
	for(int i=1;i<=t;i++)	
	{
		solv();
	}
	return 0;
}

#小红书##秋招##笔试##小红书2024#
全部评论
大佬太牛了
1 回复 分享
发布于 2023-07-23 21:20 北京
佬! 想问下第二题用cin为啥系统提示 running error
1 回复 分享
发布于 2023-07-23 21:36 福建
🐮
点赞 回复 分享
发布于 2023-07-23 21:24 浙江
我输了 大输特输
点赞 回复 分享
发布于 2023-07-23 22:29 日本
%您提前批,我直接秋招了
点赞 回复 分享
发布于 2023-07-27 11:07 辽宁

相关推荐

10-25 00:32
香梨想要offer:感觉考研以后好好学 后面能乱杀,目前这简历有点难
点赞 评论 收藏
分享
7 21 评论
分享
牛客网
牛客企业服务