首页 > 网易游戏(互娱)邀请您参加2021届实习生招聘在线笔试
头像
牛客mmm
编辑于 2020-05-17 17:58
+ 关注

网易游戏(互娱)邀请您参加2021届实习生招聘在线笔试

三道编程题,只做出来一道,第二道感觉对的,但不知为何就是验证不通过,午睡多睡了10分钟,奈何第三道只剩半个小时,光理解题意花了10分钟,没写出来。
第一道编程题,验证通过:
#include <iostream>
using namespace std;
struct ab_info {
int a[100];//:time
int b[100];//:speed
int mi;
}info[100];
int main() {
int N;//0~100
cin >> N;
for (int i = 0; i < N; i++) {//不多于100只兔子
cin >> info[i].mi;//0~100
for (int j = 0; j < info[i].mi; j++) {//不高于100次的信息更变
cin >> info[i].a[j] >> info[i].b[j];
}
}
int Q, qi;
cin >> Q;
for (int n = 0; n < Q; n++) {//实时判断,一次一次的判断,不多于100次
int road[100] = { 0 };
int max = 0, best_num = 0;;
cin >> qi;//输入总时长
for (int i = 0; i < N; i++) {//挨个计算N只乌龟
int k = 0;//速度档次
for (int t = 0; t < qi; t++) {//一秒一秒的判断
if (k >= info[i].mi - 1) {
k = info[i].mi - 1;//已经是最高档
road[i] += info[i].b[k];
}
else if (t < info[i].a[k + 1]) {
road[i] += info[i].b[k];
}
else {
k++;
road[i] += info[i].b[k];
}
}
if (max < road[i]) {
max = road[i];
best_num = i + 1;
}
}
cout << best_num << endl;
}
return 0;
}
第二道编程题,示例输入正确,但提交验证奈何显示未通过,伤心:

#include <iostream>
using namespace std;
struct loc {
int x, y;
}boal;
int main() {
int Q;//0~100
cin >> Q;
int N, M;//N行M列
int  W, T;
int count[100] = { 0 };
for (int i = 0; i < Q; i++) {//
cin >> N >> M;
cin >> boal.x >> boal.y>>W>>T;
int flag = W;
for (int j = 0; j < T; j++) {
if (W == 0) {//左上
boal.x = boal.x--;
boal.y = boal.y--;
if (boal.x == 2 && boal.y == 2)//碰到上墙和左墙
{
flag = 2; count[i] += 2;
}
else if (boal.x == 2 && boal.y > 2)//碰到上墙
{
flag = 3; count[i]++;
}
else if (boal.x > 2 && boal.y == 2)//碰到左墙
{
flag = 1; count[i]++;
}
}
else if (W == 1) {//右上
boal.x = boal.x--;
boal.y = boal.y++;
if (boal.x == 2 && boal.y == M - 1)//碰到上墙和右墙
{
flag = 3; count[i] += 2;
}
else if (boal.x == 2 && boal.y < M - 1)//碰到上墙
{
flag = 2; count[i] += 1;
}
else if (boal.x > 2 && boal.y == M - 1)//碰到右墙
{
flag = 0; count[i] += 1;
}
}
else if (W == 2) {//右下
boal.x = boal.x++;
boal.y = boal.y++;
if (boal.x == N - 1 && boal.y == M - 1)//碰到下墙和右墙
{
flag = 0; count[i] += 2;
}
else if (boal.x == N - 1 && boal.y < M - 1)//碰到下墙
{
flag = 1; count[i] += 1;
}
else if (boal.x < N - 1 && boal.y == M - 1)//碰到右墙
{
flag = 3; count[i] += 1;
}
}
else if (W == 3) {//左下
boal.x = boal.x++;
boal.y = boal.y--;
if (boal.x == N-1 && boal.y == 2)//碰到下墙和左墙
{
flag = 1; count[i] += 2;
}
else if (boal.x == N - 1 && boal.y > 2)//碰到下墙
{
flag = 0; count[i] += 1;
}
else if (boal.x < N - 1 && boal.y ==2)//碰到右墙
{
flag = 2; count[i] += 1;
}
}
W = flag;
}
}
for (int i = 0; i < Q; i++) {//
cout << count[i] << endl;
}
return 0;
}
第三道,时间不够了,没写出来:

#include <iostream>
#include <string>
using namespace std;
struct loc {
int a, b;
int c, d;
}out;
int main() {
int t;//0~10
cin >> t;
int n, m;//N行M列
for (int i = 0; i < t; i++) {//
cin >> n >> m;
string str[2000];
for (int i = 0; i < n; i++) {//
cin >> str[i];
}
}
return 0;
}



全部评论

(3) 回帖
加载中...
话题 回帖

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐