华为笔试部分题解。。

1.题意:问到最后一个的最短步数,要求第一步不能超过len/2
考虑到第一步不能超过len/2,我就直接用暴力dfs了(没想到更好的)。。
还有一个点就是它需要恰好到达最后一个,不能超过(leetcode某题是可以超过)
AC代码:
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <string.h>
#include <string>
#include <math.h>
#include <stack>
#include <queue>
#include <vector>
#include <map>
#include <set>
#include <cmath>
#pragma warning(disable:4996)

#define ll long long
using namespace std;
vector<int>anss;
vector<int> a;
void dfs(int pos,int dep) {
	if (pos > a.size() - 1)
		return ;
	if (pos == a.size() - 1) {
		anss.push_back(dep);
		return;
	}
	int mxlen;
	if (pos == 0) {
		mxlen = a.size() / 2;
		for (int i = 1; i < mxlen; ++i) {
			dfs(i, dep + 1);
		}
	}else {
		mxlen = a.size();
		dfs(pos + a[pos], dep + 1);
	}
}

int main() {
	anss.clear();
	a.clear();
	int i = 0;
	do {
		cin >> i;
		a.push_back(i);
	} while (getchar() != '\n');
	dfs(0, 0);
	sort(anss.begin(), anss.end());
	if (anss.size() == 0)
		cout << -1 << endl;
	else
		cout << anss[0] << endl;
	return 0;
}
2. Polya定理。。。好像是裸题,但是一开始没过,因为没考虑到mod,后面加了一个逆元就过了。。。代码就不贴了(用的模板)
#笔试题目##华为##题解#
全部评论
看到此时第一个第二题a的大佬Polya定理
点赞 回复 分享
发布于 2019-09-07 21:32
最后五分钟反应过来已经来不及了...
点赞 回复 分享
发布于 2019-09-07 21:35
 l = list(map(int,input().split(" "))) countlist = [] a = 0 for i in range(len(l)/2):     loc = l[i]     count = 0     while loc+l[loc] <= len(l):         loc = l[loc+l[loc]]         count += 1     else:         print(-1)     if a == 0 or a >= count:         a = count     else:         pass print(a)
点赞 回复 分享
发布于 2019-09-07 21:23
大佬有第三题的题解吗,前两题,感觉还可以都是模板。
点赞 回复 分享
发布于 2019-09-07 21:52
大佬🐮🍺
点赞 回复 分享
发布于 2019-09-07 21:54
大神求个第二题正确答案。没答案不敢确定自己想的对错,打扰您了。
点赞 回复 分享
发布于 2019-09-15 23:40
看不懂polya定理。。。
点赞 回复 分享
发布于 2019-09-18 15:56

相关推荐

剑桥断刀:找啥工作,牛客找个比如大厂软开或者随便啥的高薪牛马,大把没碰过妹子的技术仔,狠狠拿捏爆金币
点赞 评论 收藏
分享
01-23 14:54
同济大学 Java
热爱敲代码的程序媛:给你提几点【专业技能】这个模块里面可优化的地方:1.【具备JVM调优经验】可以去b站上搜一下JVM调优的视频,估计一两个小时凭你的学习能力就能掌握JVM调优的实践方面的技能。2.【MySql优化】MySql这一栏,你去b站或者找个博客看看MySql优化,学一下,如果你本身比较熟悉MySql语句的话,那基本半天时间凭你的学习能力MySql语句优化方面的技能你也能掌握个差不多。以上1,2两点主要是因为我看你专业技能大部分都说的是偏理论,没有写应用。再就是最后,你结合你的项目,想一想你的项目中哪些sql语句是可以用MySql优化的,到时候你面试的时候也好结合着说一下。
点赞 评论 收藏
分享
评论
2
27
分享

创作者周榜

更多
牛客网
牛客企业服务