网易雷火 4.25笔试

第一题
每个视角上每个点挨个判断,每个连通块提供2的贡献
#include<bits/stdc++.h>
using namespace std;
#define PII pair<int,int>
#define fi first
#define se second
#define mp make_pair
#define LL long long
#define pb push_back
const int maxn = 25;
const int INF = 0x3f3f3f3f;
const int mod = 1e9 + 7; 
int N,M,S;
vector<int>P[3][maxn][maxn];
int main(){
	scanf("%d",&N);
	for(int i = 1; i <= N ; i ++){
		int x,y,z; scanf("%d%d%d",&x,&y,&z);
		P[0][y][z].pb(x);
		P[1][x][z].pb(y);
		P[2][x][y].pb(z);
	}
	int ans = 0;
	for(int i = 0 ; i < 3; i ++){
		for(int j = 0; j <= 20; j ++){
			for(int k = 0; k <= 20; k ++){
				sort(P[i][j][k].begin(),P[i][j][k].end());
				for(int p = 0 ; p < P[i][j][k].size(); p ++){
				//	printf("%d ",P[i][j][k][p]);
					if(!p || (P[i][j][k][p] != P[i][j][k][p - 1] + 1)) ans += 2;
				}
			}
		}
	//	cout << ans << endl;
	}
	cout << ans << endl;
	return 0;
}

 
第二题
单调栈裸题
#include<bits/stdc++.h>
using namespace std;
#define PII pair<int,int>
#define fi first
#define se second
#define mp make_pair
#define LL long long
#define PLL pair<long long,long long>
#define pb push_back
const int maxn = 1e5 + 10;
const int INF = 0x3f3f3f3f;
const int mod = 1e9 + 7; 
int N,M,S;
LL H[maxn];
PLL Que[maxn];
int main(){
	scanf("%d",&N);
	for(int i = 1; i <= N ; i ++) scanf("%lld",&H[i]);
	int top = 0; LL ans = 0;
	for(int i = 1; i <= N ; i ++){
		int tmp = i;
		while(top && Que[top].se >= H[i]){
			ans = max(ans,H[i] * (i - Que[top].fi + 1));
			ans = max(ans,Que[top].se * (i - Que[top].fi));
			tmp = Que[top].fi;
			top--;
			
		}
		Que[++top] = mp(tmp,H[i]);
	} 
	for(int i = 1; i <= top; i ++) 
		ans = max(ans,Que[i].se * (N - Que[i].fi + 1));
	printf("%lld\n",ans);
	return 0;
}

 
第三题
dp[a][b][c][d]表示前b位数字的和为a,最后两位数字是c和d的状态下的最多解
迭代或者dfs地推都可
#include<bits/stdc++.h>
using namespace std;
#define PII pair<int,int>
#define fi first
#define se second
#define mp make_pair
#define LL long long
#define pb push_back
const int maxn = 1e5 + 10;
const int INF = 0x3f3f3f3f;
const int mod = 1000009; 
int N,M,S,X;
LL dp[500][51][10][10];
LL dfs(int a,int b,int c,int d){
	if(~dp[a][b][c][d]) return dp[a][b][c][d];
	if(a > S){
		dp[a][b][c][d] = 0;
		return 0;
	}
	if(b == N){
		if(a == S){
			dp[a][b][c][d] = 1;
			//cout << c << " " << d << endl;
		} 
		else dp[a][b][c][d] = 0;
		return dp[a][b][c][d];
	}
	dp[a][b][c][d] = 0;
	for(int i = 0 ; i < 10; i ++){
		if(b >= 2 && (i + c * 100 + d * 10) % X != 0) continue;
		dp[a][b][c][d] += dfs(a + i,b + 1,d,i); 
		dp[a][b][c][d] %= mod;
	}
	return dp[a][b][c][d];
}
int main(){
	scanf("%d%d%d",&N,&S,&X);
	memset(dp,-1,sizeof(dp));
	cout << dfs(0,0,0,0) << endl;
	return 0;
}

 


第四题
太麻烦了,急着出门不想写了

#网易雷火笔试##网易雷火##笔试题目#
全部评论
金牌爸爸woc
点赞 回复 分享
发布于 2020-04-26 09:07

相关推荐

牛客5655:其他公司的面试(事)吗
点赞 评论 收藏
分享
废铁汽车人:秋招真是牛鬼蛇神齐聚一堂
点赞 评论 收藏
分享
评论
4
12
分享
正在热议
# 25届秋招总结 #
443331次浏览 4520人参与
# 春招别灰心,我们一人来一句鼓励 #
42187次浏览 537人参与
# 阿里云管培生offer #
120426次浏览 2220人参与
# 地方国企笔面经互助 #
7973次浏览 18人参与
# 同bg的你秋招战况如何? #
77166次浏览 569人参与
# 实习必须要去大厂吗? #
55811次浏览 961人参与
# 北方华创开奖 #
107469次浏览 600人参与
# 虾皮求职进展汇总 #
116310次浏览 887人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
11683次浏览 289人参与
# 实习,投递多份简历没人回复怎么办 #
2454962次浏览 34861人参与
# 提前批简历挂麻了怎么办 #
149927次浏览 1978人参与
# 在找工作求抱抱 #
906096次浏览 9421人参与
# 如果公司给你放一天假,你会怎么度过? #
4762次浏览 55人参与
# 你投递的公司有几家约面了? #
33209次浏览 188人参与
# 投递实习岗位前的准备 #
1196037次浏览 18550人参与
# 机械人春招想让哪家公司来捞你? #
157648次浏览 2267人参与
# 双非本科求职如何逆袭 #
662384次浏览 7397人参与
# 发工资后,你做的第一件事是什么 #
12806次浏览 62人参与
# 工作中,努力重要还是选择重要? #
35906次浏览 384人参与
# 简历中的项目经历要怎么写? #
86937次浏览 1516人参与
# 参加完秋招的机械人,还参加春招吗? #
20153次浏览 240人参与
# 我的上岸简历长这样 #
452074次浏览 8089人参与
牛客网
牛客企业服务