首页 > 其他分享 >funplus9.21笔试

funplus9.21笔试

时间:2024-09-21 10:48:19浏览次数:8  
标签:return int res funplus9.21 笔试 ++ vector findx

唯一编程题

给出n个三角形的端点序号,询问重合三角形的最大集合有多少个三角形?

依次计算两两之间的关系,使用并查集获取连通块求解

int maxConnectedTrianglesSize(vector<vector<int> >& indexArray, int n) {  
    vector<int> f(n);  
    for (int i = 0; i < n; i++) {  
        f[i] = i;  
    }  
    function<int(int)> findx = [&](int y) {  
        if (f[y] == y) return y;  
        else return f[y] = findx(f[y]);  
    };  
    function<void(int, int)> merge = [&](int a, int b) {  
        int xa = findx(a), xb = findx(b);  
        if (xa == xb) return;  
        f[xa] = xb;  
    };  
    function<bool(vector<int>, vector<int>)> check = [&](vector<int> a, vector<int>b) {  
        unordered_map<int, int> mp;  
        int tmp = 0;  
        for (int i:a) {  
            mp[i] = 1;  
        }  
        for (int i:b) {  
            if (mp.count(i)) tmp++;  
        }  
        if (tmp >= 2) return true;  
        else return false;  
    };  
    for (int i = 0; i < n; i++) {  
        for (int j = i + 1; j < n; j++) {  
            if (check(indexArray[i],indexArray[j])) merge(i,j);  
        }  
    }  
    unordered_map<int, int> t;  
    int res = 0;  
    for (int i = 0; i < n; i++) {  
        if (t.count(findx(i))) t[findx(i)] += 1;  
        else t[findx(i)] = 1;  
        res = max(res, t[findx(i)]);  
    }  
    return res;  
}

标签:return,int,res,funplus9.21,笔试,++,vector,findx
From: https://www.cnblogs.com/tanch25/p/18423677

相关文章

  • 【Py/Java/C++三种语言OD独家2024E卷真题】20天拿下华为OD笔试之【模拟】2024E-转骰子
    可上欧弟OJ系统练习华子OD、大厂真题绿色聊天软件戳od1441了解算法冲刺训练(备注【CSDN】否则不通过)文章目录相关推荐阅读题目描述与示例题目描述输入描述输出描述示例一输入输出说明示例二输入输出说明解题思路构建长度为6的数组表......
  • 【春秋招必看】Unity相关笔试面试题(内有完整答案)第二期
    欢迎来到光光的奇妙冒险,我是你们的煎饼光子老师。今天是我们的第二期笔试面试题总结。C#部分:1、请说说你认为C#中==和Equals的区别是什么?答案:(1).==是运算符,Equals是万物之父Object中的虚方法,子类可重写(2).Equals一般在子类中重写后用于比较两个对象中内容是否相同......
  • 平安银行25届校招测评:北森销售人员认知与胜任能力测评/笔试通关攻略
     平安银行校招北森销售人员认知与胜任能力测评题型介绍本次您需要完成的测评项目是:北森销售人员认知与胜任能力测评,预计耗时:45分钟,请合理安排时间。  平安银行为什么要做北森销售人员认知与胜任能力测评?笔试/测评是平安银行校园招聘流程中的必经环节,只有......
  • 小米9.14笔试
    简单入门题第一题给出容量为N的背包、n个物品和c个体积为1的填充块,询问是否能够将背包刚好充满。价值与体积相同的0/1背包,结尾判断差值是否小于c#include<bits/stdc++.h>usingnamespacestd;intmain(){intT;cin>>T;while(T--){......
  • 吉比特9.19笔试
    第一题给出n,d,m,分别代表多项式个数、维度和修改次数。接下来n行以t开头,接下来t+1个数分别代表0次1次--的项系数接下来m行以p,l,r开头分别代表修改第l个到第r个多项式的前p+1项系数。最后输出n个多项式f(233)的结果,要求结果对1e7+9取模。最后计算结果的次数上限设置为500......
  • C语言指针进阶笔试题(含解析)
    笔试题1:intmain(){ inta[5]={1,2,3,4,5}; int*ptr=(int*)(&a+1); printf("%d,%d",*(a+1),*(ptr-1)); return0;} 解析:*(a+1),a是首元素的地址,加1之后就是第二个元素的地址,解引用就是2。ptr是&a+1,取出的是整个数组的地址,加1跳过整个数组:强转为int......
  • 【面试经验】2024年9月滴滴后端笔试 java
    比较简单,两题编程。选择题好像是20题,有部分不确定,有C++的几题。题目记不清了,凭印象写一下。编程题第一题充电第一题:n个玩具,m电量,尽可能让一个大的区间内的玩具的电量充满。输出充满电的玩具个数。双指针+滑动窗口。importjava.util.Scanner;publicclassMa......
  • 58. 区间和(第九期模拟笔试)
    中秋节摆了一天,感觉畏难情绪一直困扰着我,要好好调制状态才行。#include<iostream>#include<vector>usingnamespacestd;intmain(){intn=0;cin>>n;vector<int>sum(n,0);for(inti=0;i<n;++i){intnum;cin>>......
  • 360 9.14笔试
    第二题大模拟真的有点折磨了第一题给出m种饮料,每种饮料只有一杯,接下来有n个客人,每个客人有两种想喝的饮料,请问最多能满足多少位客人。数据范围比较小n=20,所以直接暴力求解#include<bits/stdc++.h>usingnamespacestd;intmain(){intn,m;cin>>n>>......
  • 虾皮9.14笔试
    三道都是简化的板子题第一题给出每个位置的过路费,求从左上角到右下角的最小花费是多少。只允许往下或者往右走。数据范围只有100直接暴力搜索即可。intminPathSum(vector<vector<int>>&grid){intm=grid.size();intn=grid[0].size();intres=......