网易互联网3.27日笔试,四道笔试题一道简答题,四道笔试题AK,简答题考察设计模式不会。
第一道题模拟使用单体技能和群体技能攻击怪物的场景、第二题字符串处理、第三题构造具有限制条件的完全二叉树、第四题动态规划问题。
给定两个怪,分别具有a,b血量;给定两个技能,单体技能伤害为x,群体技能伤害为y。单体技能同时只能攻击一个怪物,群体技能可同时攻击两个怪物。问给定a、b、x、y时,最少的攻击次数。
问题的关键在于什么时候使用单体技能、什么时候使用群体技能?
临场没有思考清楚这一问题,直接暴力比较三种策略(答案出自这三种策略之一):
给定一个只包含小写字母的字符串。用户可以不限次标记连续的两个字符,要求标记的两个字符相同或者是大小相邻(值相差1)。标记字符后,可以获取字符具有的分数,a-z分别有1-26分,问最高得分是多少。
顺序处理字符串,每次截取一个可标记连续子串,子串任意相邻的两个字符相同或者值大小相差1。子串存在三种情况:
给定1-n编号的n个节点,要求构造完全二叉树,但存在一个限制条件。限制条件是,每个节点(除父节点)编号与其父节点编号的乘积为偶数。
经模拟3节点、4节点、5节点等简单情况,发现内节点编号均为偶数,叶子节点均为奇数。然后直接两遍遍历1-n,第一遍输出所有偶数,第二遍输出所有奇数。
给定一片n*m的矩阵沼泽地,需要从(0,0)位置移动到(n,m)位置,运行向左、下、右三个方向移动,并且移动会有代价,问最小代价是多少?移动代价计算方式为,若相同地型之间移动,代价为1;若在不同地形之间移动,代价为2。
典型的dp问题。
定义二维数组dp[n][m],dp[i][j]表示移动到位置(i,j)的最小代价。
可以从左、上、右三个相邻格子移动到(i,j)位置,考虑到从右边移动到(i,j)代价必定高于从上方移动,还剩下两种情况。递推公式为:dp[i][j]=min(dp[i-1][j],dp[i][j-1])(此公式仅表示状态之间的依赖关系)。
#include "bits/stdc++.h"
using namespace std;
int method1(int a, int b, int x, int y);
int method2(int a, int b, int x, int y);
int method3(int a, int b, int x, int y);
int main()
{
int a, b;
int x, y;
cin >> a >> b >> x >> y;
int cnt = INT_MAX;
cnt = min(cnt, method1(a, b, x, y));
cnt = min(cnt, method2(a, b, x, y));
cnt = min(cnt, method3(a, b, x, y));
cout << cnt << endl;
return 0;
}
int method1(int a, int b, int x, int y)
{
int cnt = (a + x - 1) / x + (b + x - 1) / x;
return cnt;
}
int method2(int a, int b, int x, int y)
{
int cnt = 0;
int low = min(a, b);
int high = max(a, b);
cnt += (low + y - 1) / y;
cnt += (high - cnt * y + x - 1) / x;
return cnt;
}
int method3(int a, int b, int x, int y)
{
int cnt = max((a + y - 1), (b + y - 1)) / y;
return cnt;
}
#include "bits/stdc++.h"
using namespace std;
int main()
{
string str;
cin >> str;
int score = 0;
int i = 0;
while (i < str.size()) {
int j = i + 1;
while (j < str.size() && (str[j] == str[j - 1] || abs(str[j] - str[j - 1]) == 1))
j++;
for (int k = i; k < j; k++)
score = score + str[k] - 'a' + 1;
if ((j - i) % 2 == 1) {
char min_char = 'z';
for (int k = i; k < j; k++) {
if ((k - i) % 2 == 0 && str[k] < min_char)
min_char = str[k];
}
score = score - (min_char - 'a' + 1);
}
i = j;
}
cout << score << endl;
return 0;
}
#include "bits/stdc++.h"
using namespace std;
int main()
{
int n;
cin >> n;
for (int i = 2; i <= n; i += 2) {
cout << i << ' ';
}
for (int i = 1; i <= n; i += 2) {
cout << i << ' ';
}
return 0;
}
#include "bits/stdc++.h"
using namespace std;
int main()
{
int n, m;
cin >> n >> m;
vector<vector<int>> board(n, vector<int>(m));
vector<vector<int>> dp(n, vector<int>(m, INT_MAX));
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> board[i][j];
}
}
dp[0][0] = 0;
for (int j = 1; j < m; j++) {
dp[0][j] = dp[0][j - 1] + (board[0][j] == board[0][j - 1] ? 1 : 2);
}
for (int i = 1; i < n; i++) {
dp[i][0] = dp[i - 1][0] + (board[i][0] == board[i - 1][0] ? 1 : 2);
}
for (int i = 1; i < n; i++) {
for (int j = 1; j < m; j++) {
dp[i][j] = min(dp[i][j], dp[i - 1][j] + (board[i - 1][j] == board[i][j] ? 1 : 2));
dp[i][j] = min(dp[i][j], dp[i][j - 1] + (board[i][j - 1] == board[i][j] ? 1 : 2));
}
}
cout << dp[n - 1][m - 1] << endl;
return 0;
}
一、什么是MQTT协议MessageQueuingTelemetryTransport:消息队列遥测传输协议。是一种基于客户端-服务端的发布/订阅模式。与HTTP一样,基于TCP/IP协议之上的通讯协议,提供有序、无损、双向连接,由IBM(蓝色巨人)发布。原理:(1)MQTT协议身份和消息格式有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。MQTT传输的消息分为:主题(Topic)和负载(payload)两部分Topic,可以理解为消息的类型,订阅者订阅(Su
如何使用Capistrano将Rails应用程序部署到无法访问外部网络或存储库的生产或暂存服务器?我已经设法完成部署的一半,并意识到Capistrano没有在我的本地机器上下载gitrepo,但它首先连接到远程服务器并尝试在那里下载Git存储库。我希望有一个类似Javaee的构建系统,其中创建可交付成果并将该可交付成果发送到服务器。就像您构建.ear文件并将其部署到您想要的任何服务器上一样。显然在RoR中,你被迫(据我所知)在该服务器上构建应用程序,在那里创建一个gem存储库,在那里克隆最新的分支等等。有什么方法可以将准备运行的包发送到远程服务器吗? 最佳答
我一直在使用zeroMQ,我希望能够通过Internet安全连接。我在ruby中,可以使用SSL和/或某种shh连接,但找不到有关如何执行此操作的任何示例。我找到了这个旧的stackoverflow链接,HowdoeszeromqworktogetherwithSSL?说他们正在研究某种安全性,但那是一年前的事了,我找不到任何新的引用资料。即使这不是内置在zeroMQ中,我也假设会有一些方法可以使用OpenSSL或类似的东西来设置它。注意:如果您想要安全传输,zeroMQ网站提到使用VPN或其他东西。我不想使用VPN。一定有更好的方法。 最佳答案
跳过联网激活:OOBE界面直接按Ctrl+Shift+F3进入审核模式。这样就可以直接进入系统进行一些硬件测试等,而不用联网激活导致新机无法退货。需要注意的是,在审核模式下进行的一些操作都会保留,并不会在退出后自动还原!安装的软件在正常开机进系统后还会看见!如果电脑确实没连互联网又不想强行跳过OOBE(网上很多教程会叫你直接结束OOBE进程,但这是不推荐的,因为一些厂商自带优化程序和系统初始化设置在后面都会应用,对于笔记本跳过的话你会发现驱动和内置应用都没有装上。其实这部分脚本就在系统盘的Recovery隐藏文件夹下),可以参考以下方式:https://www.landiannews.com/
如果有人能提供一些关于在没有互联网连接的计算机上安装rubyonrails3.x框架的见解,我将不胜感激。所有教程或解释似乎都假设始终存在互联网连接。有没有简单的方法来下载包含所有依赖项的包并简单地安装包。提前致谢 最佳答案 最后。您需要手动下载的Gem的完整列表,以便在离线模式下安装Rails(或在阻止您的“gem”命令工作的代理之后)。此列表假定您已经拥有以下内容(Windows7):Ruby1.9.2RubyGems1.8.24DevKit列表。转到rubygems.org并使用搜索功能下载以下每个Gem。您不需要键入
文章目录1简介2绪论2.1课题背景与目的3系统设计详细设计描述3.2硬件部分温度测量电路其他电路部分3.3软件部分主程序子系统程序温湿度程序流程键盘显示子程序3.4实现效果3.5部分相关代码4最后1简介Hi,大家好,这里是丹成学长,今天向大家介绍一个单片机项目基于单片机的智能温控农业大棚系统大家可用于课程设计或毕业设计单片机-嵌入式毕设选题大全及项目分享:https://blog.csdn.net/m0_71572576/article/details/1254090522绪论2.1课题背景与目的近年来我国的温室控制取得了长足的进步,首先在温室群控制方面,进行了初步的探索和理论研究,其次在温室
互联网这头“猪”真的掉下来了流量红利已经一去不复返了!3年前业界其实已经发出各种密集信号,在当时无论是BAT还是一些经济学家在3年前都已经预测过,互联网的流量模式已经衰竭,并且它将一去不复返。曾经处于互联网大潮的我们这一代人有喜有有悲也有感慨。还在4-5年前不少程序员会发觉在一个地方工作一年再跳一家公司,工资翻倍是至少的。其实这不是能力的表现这只不过是因此我们赶上了互联网流利红利、风投资本红利的“风口”而己。“赶上风口就连老母猪都能上树"用于形容当时的情形一点不为过。可是这个“风”这次是真的过去了,因此这头“猪”掉了下来,而且这次摔了还挺狠,直接给摔成了肉饼。业务模式、生态、环境的变革是时代的
我很小的时候就开始使用IRC,我一直对它着迷。作为语言练习,我正在考虑用Ruby编写一个简单的IRC客户端Shoes作为图形前端。先生们,我的问题是,要开始这次伟大的冒险,我需要熟悉什么(当然除了鞋子和Ruby之外)?我想在IRC协议(protocol)上有某种规范。有什么指点吗? 最佳答案 之前的一篇文章提到了RFC1459。虽然这是对IRC的一个很好的介绍,但它实际上已被RFC2810-2813取代。这是一个更完整的文档列表,您需要编写任何与IRC相关的程序:RFC1459(原始RFC;已被取代,但仍然有用)RFC2810(IR
数组理论基础数组是存放在连续内存空间上的相同类型数据的集合。数组下标从0开始数组内存空间的地址是连续的c++中vector和array的区别1、vector是顺序容器,其利用连续的内存空间来存储元素,但是其内存空间大小是能够改变的。2、array是顺序容器,其也是利用连续的内存空间来存储元素,但它的内存空间是固定大小的,申请之后就无法改变。3、vector的底层是array实现的二维数组二维数组在内存的空间地址是连续的704|二分查找思路1、把整个数组一分为二;2、判断目标值在左区间还是右区间,若在左区间,则修改右区间指针的位置;若在右区间,则修改新区间的左区间位置3、重复上述过程,直到lef
本文来自明道云资深研发经理孙伟,在明道云2022年秋季伙伴大会活动演讲,经校对编辑后整理为演讲精华。一、开放没有选择很多客户选择我们的一个重要原因,是明道云所能提供的产品开放能力。开放其实是没有选择的,坦白来讲,我也不希望开放,我希望客户所有的业务系统都用明道云管理,这样对我们是更有利的。但是,现实中因为企业业务的多样性与复杂性,没有任何一家平台可以做到一站式解决所有问题。为了方便客户,我们就必须开放自己,让客户用得更好。1.一个典型的业务场景需要多少个系统?我们先来看一个典型的业务场景。一个客户从网站上下了一个订单,经销商收到订单之后去向企业订货。企业订货之后如果自身不进行生产,就需要向供应