2024.6.20 网易互娱笔试 (已 ak )

第一题:纯模拟题

#include<bits/stdc++.h>
using namespace std;
int n = 5;
int a[6],b[6],aa[6],bb[6];
int main()
{
	for(int i = 1;i<=5;i++)cin>>a[i];
	for(int i = 1;i<=5;i++)cin>>aa[i];
	for(int i = 1;i<=5;i++)cin>>b[i];
	for(int i = 1;i<=5;i++)cin>>bb[i];
	bool flag = true;
	int cnt1 = 1, cnt2 = 1; 
	while(cnt1 <=5 && cnt2 <=5)
	{
		//轮到小易 
		if(flag)
		{
			bb[cnt2]-=a[cnt1];
			flag = false;
			if(bb[cnt2]<=0)cnt2++;
		}
		else
		{
			aa[cnt1]-=b[cnt2];
			flag = true;
			if(aa[cnt1]<=0)cnt1++;
		}	
	}
	if(cnt1 <=5)
	{
		cout << "win"<<endl;
		cout << n - cnt1 + 1 <<endl;
	}
	else
	{
		cout << "lose"<<endl;
		cout << n - cnt2 + 1 <<endl;
	}
}

第二题:递归求组合数 然后再进行计算最大值就好了

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 410; 
int n;
struct jianzhu
{
	int val;
	int a;
	int b;
	int c;
}p[N];
int sum = 0;
void dfs(int val, int aa,int bb,int cc,int start)
{	
	if(start>n)
	{
		return;
	}
	for(int i = start; i <=n;i++)
	{
		if(aa>=p[i].a && bb>=p[i].b && cc>=p[i].c)
		{
			sum = max(sum,val + p[i].val);
			dfs(val + p[i].val,  aa - p[i].a,bb-p[i].b,cc-p[i].c,i + 1);
		}
	}
}
signed main()
{
	int A,B,C;
	cin>>n>>A>>B>>C;
	for(int i = 1;i<=n;i++)
	{
		int a,b,c,v;
		cin>>a>>b>>c>>v;
		p[i]={v,a,b,c};
	}
	dfs(0,A,B,C,1);
	cout << sum <<endl;
	return 0;
}

第三题:先把坐标整体偏移2000,然后做一次二维差分数组就好了,一开始以为是哈希,推了半天没推了,后面发现,这不裸着的二维差分数组嘛!

#include<bits/stdc++.h>
using namespace std;
const int N = 100010;
int n,q;
int b[5000][5000];
struct Dian
{
	int x,y,r;
}dian[N];
void add(int x1,int y1,int x2,int y2,int c)
{
	b[x1][y1]+=c;
	b[x1][y2+1]-=c;
	b[x2+1][y1]-=c;
	b[x2+1][y2+1]+=c;
}
signed main()
{
	cin>>n;
	for(int i =1;i<=n;i++)
	{
		int x,y,r;
		cin>>x>>y>>r;
		x+=2000,y+=2000;
		dian[i] = {x,y,r};
		add(x-r,y-r,x+r,y+r,1);
		
	}
	for(int i = 1;i<=5000;i++)
	{
		for(int j = 1;j<=5000;j++)
		{
			b[i][j] = b[i][j] + b[i-1][j] + b[i][j-1] - b[i-1][j-1];
		}
	}
	cin>>q;
	while(q--)
	{
		int x0,y0;
		cin>>x0>>y0;
		x0+=2000,y0+=2000;
		cout <<b[x0][y0]<<endl;
	}
	return 0;
}

今天的题目好简单阿,一小时ak,好久没那么爽了,感谢网易互娱~~

#网易互娱##网易互娱笔试#
全部评论
佬😭,我写出来一个就
2 回复 分享
发布于 2024-06-20 22:29 安徽
我只做出来2.1,不知道能不能进面。第三题10%
1 回复 分享
发布于 2024-06-21 09:41 广东
我擦,看到一个个都是这样,我感觉我凉了
点赞 回复 分享
发布于 2024-06-25 08:45 上海
第二题这样写会得到最大值吗,比如说有jianzhu 1 2 3,最优是1和3,但是这样写不会遍历到这种情况吧
点赞 回复 分享
发布于 2024-06-21 13:18 广东
佬 🐮 差分数组 听都没听过
点赞 回复 分享
发布于 2024-06-21 09:46 广东
我第二题用01背包做只能过45%,其他超时了不知道为啥
点赞 回复 分享
发布于 2024-06-20 22:35 上海

相关推荐

上周组里招人,我面了六个候选人,回来跟同事吃饭的时候聊起一个让我挺感慨的现象。前三个候选人,算法题写得都不错。第一道二分查找,五分钟之内给出解法,边界条件也处理得干净。第二道动态规划,状态转移方程写对了,空间复杂度也优化了一版。我翻他们的简历,力扣刷题量都在300以上。后三个呢,就有点参差不齐了。有的边界条件没处理好,有的直接说这道题没刷过能不能换个思路讲讲。其中有一个女生,我印象特别深——她拿到题之后没有马上写,而是先问我:“面试官,我能先跟你确认一下我对题目的理解吗?”然后她把自己的思路讲了一遍,虽然最后代码写得不是最优解,但整个沟通过程非常顺畅。这个女生的代码不是最优的,但当我问她“如果这里是线上环境,你会怎么设计’的时候,她给我讲了一套完整的方案——异常怎么处理、日志怎么打、怎么平滑发布。她对这是之前在实习的时候踩过的坑。”我在想LeetCode到底在筛选什么?我自己的经历可能有点代表性。我当年校招的时候,也是刷了三百多道题才敢去面试。那时候大家都刷,你不刷就过不了笔试关。后来工作了,前三年基本没再打开过力扣。真正干活的时候,没人让你写反转链表,也没人让你手撕红黑树。更多的是:这个接口为什么慢了、那个服务为什么OOM了、线上数据对不上了得排查一下。所以后来我当面试官,慢慢调整了自己的评判标准。算法题我还会出,但目的变了。我出算法题,不是想看你能不能背出最优解。而是想看你拿到一个陌生问题的时候,是怎么思考的。你会先理清题意吗?你会主动问边界条件吗?你想不出来的时候会怎么办?你写出来的代码,变量命名乱不乱、结构清不清楚?这些才是工作中真正用得到的能力。LeetCode是一个工具,不是目的。它帮你熟悉数据结构和常见算法思路,这没问题。但如果你刷了三百道题,却说不清楚自己的项目解决了什么问题、遇到了什么困难、你是怎么解决的,那这三百道题可能真的白刷了。所以还要不要刷LeetCode?要刷,但别只刷题。刷题的时候,多问自己几个为什么:为什么用这个数据结构?为什么这个解法比那个好?如果换个条件,解法还成立吗?把刷题当成锻炼思维的方式,而不是背答案的任务。毕竟面试官想看到的,从来不是一台背题机器,而是一个能解决问题的人。
牛客51274894...:意思是光刷力扣还不够卷
AI时代还有必要刷lee...
点赞 评论 收藏
分享
评论
9
25
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务