京东笔试编程题 3.19

第一题

思路:直接模拟

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main() {
    std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    int i = 1, a, b, c, d, att = 0;
    cin >> a >> b >> c >> d;
    while(i ++) {
        int num = a / b;
        att += a % b;
        if(att >= b) {
            att -= b;
            d --;
        }
        d -= num;
        if(d <= 0) break;
        a -= d * c;
        if(a <= 0 && d > 0) {
            cout << -1 << endl;
            return 0;
        }
    }
    cout << i - 1 << endl;
    return 0;
}

第二题

思路:
每次加入具有最大权值边的节点到集合中;同时维护一个最大承重值,最大承重值为求其加入所有节点边的最小值
当时觉得时间复杂度还挺高的,没想到所有用例都过了

#include<iostream>
#include<vector>
#include<algorithm>
int t[1010][1010];
int visited[1010];
using namespace std;
int main() {
    std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    int n, m;
    int maxVal = 10010;
    cin >> n >> m;
    vector lt;
    for(int i = 0; i < m; i++) {
        int a, b, c;
        cin >> a >> b >> c;
        t[a][b] = c;
        t[b][a] = c;
    }
    for(int i = 1; i <= n; i++) {
        if(lt.size() == 0) {
            lt.push_back(1);
            visited[1] = 1;
        } else {
          int idx = 1, val = 0; 
          for(auto& num : lt) {   
              for(int j = 1; j <= n; j++) {
                  if(visited[j] == 0 && t[num][j] > val) {
                      val = t[num][j];
                         idx = j;
                  }
              } 
          }  
          lt.push_back(idx);
          maxVal = min(maxVal, val);
          visited[idx] = 1;
        }
    }
    cout << maxVal << endl;
    return 0;
}
#京东实习生笔试##京东##笔经#
全部评论
一看就是打acm的
1 回复 分享
发布于 2022-03-19 21:14
第二题用的优先队列+广度优先。结果过了。。
1 回复 分享
发布于 2022-03-19 22:58
第二题可以理解为最大生成树里的最小边吗
点赞 回复 分享
发布于 2022-03-19 21:09
校友这么厉害,我第二题不会😥
点赞 回复 分享
发布于 2022-03-19 21:09
第一道只能过18%的有没有,也是这个思路,像不懂为啥
点赞 回复 分享
发布于 2022-03-19 21:19
编程题会提示通过的百分比吗,我提交就看到一个提示说通过测试用例,我不知道是我调试时通过了我测试用例还是通过了系统给定的测试用例。好像我没有提交,这是在线调试了一下
点赞 回复 分享
发布于 2022-03-19 21:31
害,第二题应该写最大生成树,我写反了
点赞 回复 分享
发布于 2022-03-19 21:34
java选手用C++写吗😂
点赞 回复 分享
发布于 2022-03-19 22:32
最大生成树,我把根节点固定成了1,理解错了题意😅😅
点赞 回复 分享
发布于 2022-03-19 23:56
第二题克鲁斯卡尔算法模板题
点赞 回复 分享
发布于 2022-03-20 10:24

相关推荐

5 18 评论
分享
牛客网
牛客企业服务