360 2020秋招笔试真题

360 2020秋招笔试真题

1、表面积

【题目描述】将长N*M厘米的矩形区域划分成N行M列(每行每列的宽度均为1厘米),在第i行第j列的位置上叠放Ai,j个边长为1厘米的正方体(1≤Ai,j≤100),所有正方体就组成了一个立体图形,每个正方体六个面中的一部分会被其它正方体遮挡,未被遮挡的部分的总面积即为该立体图形的表面积,那么该立体图形的表面积是多少平方厘米?
输入描述
第一行包含两个整数N和M,1≤N,M≤1000。
接下来N行,每行包含M个整数,第i行的第j个整数表示Ai,j
输出描述
输出表面积的大小。
输入样例

2 2
2 1
1 1

输出样例
20


【解题思路】

几何题。统计处理遮挡和深度部分。

【参考代码】


#include <bits/stdc++.h>
#define N 1007
using namespace std;
int n, m, a[N][N];
int main() {
    scanf("%d%d", &n, &m);
    for (int i = 1; i <= n; ++i)
        for (int j = 1; j <= m; ++j)
            scanf("%d", &a[i][j]);
    int ans = n * m * 2;
    for (int i = 1; i <= n; ++i) {
        ans += a[i][1] + a[i][m];
            for (int j = 2; j <= m; ++j)
                if (a[i][j] > a[i][j - 1]) ans += a[i][j] - a[i][j - 1];
        for (int j = 1
            if (a[i][j] > a[i][j + 1])
                ans += a[i][j] - a[i][j + 1];
    }
    for (int i = 1; i <= m; ++i) {
        ans += a[1][i] + a[n][i];
        for (int j = 2; j <= n; ++j)
            if (a[j][i] > a[j - 1][i])
                ans += a[j][i] - a[j - 1][i];
        for (int j = 1; j < n; ++j)
            if (a[j][i] > a[j + 1][i])
                ans += a[j][i] - a[j + 1][i];
    }
    printf("%d", ans);
}


2、序列重组

【题目描述】在一个古老的国度,这个国家的人并不懂得进位,但是对取模情有独钟,因此诞生了一个经典的问题,给出两个在m进制下含有n位的数字,你可以分别将这两个数各位上的数字重新排列,然后将两个数按位对应相加并分别对m取模,这样显然可以得到一个新的m进制下的n位数(可能存在前导0),但是这个结果是不唯一的,问题来了,按照这样的操作,能够得到的最大的m进制下的数字是多少呢。
输入描述
输入第一行包含两个正整数n,m分别表示数字含有n位,和在m进制下。(n,m≤100000)
输入第二行和第三行分别包含n个整数,中间用空格隔开,每个整数都在0到m-1之间。每行第i个数表示的是当前数第i位上的数字。
输出描述
输出包含n个数字,中间用空格隔开,表示得到的最大的数字,从高位到低位输出,如6在2进制下输出3位的结果是1 1 0。

输入样例

5 5
4 4 1 1 1
4 3 0 1 2


输出样例

4 4 3 3 2


【解题思路】

统计两个数每个数字出现的次数,从小到大对a的数位进行枚举,对应得贪心的使用b的数位去匹配相加,最终得到答案。

【参考代码】


#include <bits/stdc++.h>
using namespace std;
const int maxn = 1000005;
int a[maxn], b[maxn], c[maxn];
stack<int> st;
int main() {
    int n, m;
    cin >> n >> m;
    for (int i = 0; i < n; i++) {
        int x;
        cin >> x;
        a[x % m]++;
    }
    for (int i = 0; i < n; i++) {
        int x;
        cin >> x;
        b[x % m]++;
    }
    for (int k = 0; k < 2; k++)
        f

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

2021名企校招笔试真题-技术 文章被收录于专栏

&lt;p&gt; 本专刊由牛客官方团队打造,主要讲解名企校招技术岗位的笔试题。 内容中包含多个名企的笔试真题,附有题目思路及参考代码 本专刊购买后即可解锁所有章节,故不可以退换哦~ &lt;

全部评论

相关推荐

10-13 17:47
门头沟学院 Java
wulala.god:图一那个善我面过,老板网上找的题库面的
点赞 评论 收藏
分享
美丽的查理斯不讲武德:包kpi的啊,感觉虾皮一点hc都没有
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务