2017网易游戏笔试

来源:互联网 发布:云计算 信息基础设施 编辑:程序博客网 时间:2024/04/27 23:42

刚刚做完网易笔试题,就写出了两题,趁脑子还清醒,写下来记住。

第一题代码:

#include<iostream>using namespace std;int main(){int M, N, x, y, i, j;cin >> M >> N;int *a = new int[M];for (i = 0; i < M; i++)a[i] = 0;//初始化硬币起始状态while (N != 0) {--N;cin >> x >> y;for (j = x - 1; j < y; j++)a[j]++;}for (int num = 0; num < M; num++) {a[num] %= 2;cout << a[num];}return 0;}


第二题:

不懂是什么意思,把网上公式随便抄了一遍。。


第三题代码:

#include <iostream>#include <queue>using namespace std;const int maxSize = 101;int visit[maxSize] = { 0 };int main(){void DFS(int a[maxSize][maxSize], int n, int v);int graph[maxSize][maxSize] = { 0 };int n, m;cin >> n >> m;if (n <= 1) {cout << 0;return 0;}if (m == 0) {cout << n - 1;return 0;}int a, b;while (m) {m--;cin >> a >> b;graph[a][b] = 1;graph[b][a] = 1;}int nums = 0;                     //联通子图个数for (int i = 1; i <= n; i++) {if (visit[i] == 0) {DFS(graph, n, i);nums++;}}nums--;cout << nums << endl;return 0;}void DFS(int a[maxSize][maxSize], int n, int v){int First(int a[maxSize][maxSize], int n, int v);int Next(int a[maxSize][maxSize], int n, int v, int j);int w;visit[v] = 1;for (w = First(a, n, v); w > 0; w = Next(a, n, v, w)) {if (!visit[w])DFS(a, n, w);}}int First(int a[maxSize][maxSize], int n, int v){int j = 1;while (j <= n && a[v][j] == 0)j++;if (j > n)return 0;return j;}int Next(int a[maxSize][maxSize], int n, int v, int j){int w = j + 1;while (w <= n && a[v][w] == 0)w++;if (w > n)return 0;return w;}

第四题:

想当然地以为是判断输入的字符串有几个不同的字符就行了,但这种思路貌似不对,通过率仅为2%。


祝自己好运。

0 0
原创粉丝点击