腾讯校园招聘技术类编程题汇总

news2024/11/24 17:42:44

 题解:并查集(模板)

#include <iostream>
#include<map>
using namespace std;
int father[2000006];
int rank1[1000005];
void init(int n){
    for(int i=1;i<=1e5;i++){
        father[i]=i;
        rank1[i]=1;
    }
}
int find(int x){
    if(father[x]==x){
        return x;
    }
    while(x!=father[x])
    {
        x=father[x];
    }
    return x;
}
void merge(int x,int y){
    int x1=find(x);
    int y1=find(y);

    if (x1 != y1)                           //如果不是同一个集合
        {
            if (rank1[x1] < rank1[y1])     //rank大的集合合并rank小的集合
            {
                
                father[x1]=y1;
                rank1[y1]++;        
            }
            else if(rank1[x1] >= rank1[y1])
            {
                         father[y1]=x1;
                         rank1[x1]++;
            }
        }

        
}
map<int,int>mp;
int main() {
    int T;
    scanf("%d",&T);
    while(T--){
      int n;
      scanf("%d",&n);
      init(n);
      for(int i=0;i<n;i++){
           int x,y;
           scanf("%d%d",&x,&y);
           merge(x,y);
      }
      int res=1;
    
      for(int i=1;i<=1e5;i++)
      {
        int k=find(i);
               
               mp[k]++;
               int w=mp[k];   
               res=max(res,w);
      }
      printf("%d\n",res);
      mp.clear();
    }
    return 0;

}

 题解:首先对于字符串大小的比较需要重写,然后利用优先队列维护前K个字符在队列中,最终取出队首元素即可

#include <iostream>
#include<stdio.h>
#include<queue>
#include<map>
#include<vector>
#include<string>
using namespace std;

bool cmp1(string& a, string& b){
    if(a.size()==b.size())
{
            if(a<b){
        return false;
    }
    else {
        return true;
    }
}
    else if(a.size()>b.size())
    {
            string c=a.substr(0,b.size());
            if(c==b)
            {
            return false;
            }
            else if(c>b)
            {
            return true;
            }
            else{
            return false;
            }
    }
    else 
    {
    string c=b.substr(0,a.size());
    if(c==a) return true;
    else if(c>a)
    {
        return false;
    }
    else{
        return true;
    }
    }
}

struct cmp {
    bool operator() (const string& a, const string& b) const {
           if(a.size()==b.size())
            {
                            if(a<b){
                        return false;
                    }
                    else {
                        return true;
                    }
           }
           else if(a.size()>b.size())
           {
                 string c=a.substr(0,b.size());
                 if(c==b)
                 {
                    return false;
                 }
                 else if(c>b)
                 {
                    return true;
                 }
                 else{
                    return false;
                 }
           }
           else 
           {
            string c=b.substr(0,a.size());
            if(c==a) return true;
            else if(c>a)
            {
                return false;
            }
            else {
                return true;
            }
           }

         
    }
};
// priority_queue<string, greater<string>, cmp> que;
priority_queue<string, vector<string>,cmp> que;
map<string,int>mp;
int main() {
   
    string s;
    cin>>s;
    int k;
    scanf("%d",&k);
    // vector<string>ve(k,"");
    for(int i=0;i<s.size();i++)
    {
        char c=s[i]-'a';
        s[i]=100-c;

    }
    int num=0;
    for(int i=0;i<s.size();i++){
        for(int j=i;j<s.size();j++)
        {
              string s1=s.substr(i,j-i+1);
              
            //    cout<<s1<<endl;
            if(num<k)
            {
            if(mp[s1]){
                continue;
              }
              else{
                mp[s1]++;
              }
               que.push(s1);
               num++;
            }
            else{
                string s2=que.top();
                    if(cmp1(s1,s2)){
                        if(mp[s1]){
                    continue;
                }
                else{
                    mp[s1]++;
                }
                    // cout<<(s1>s2)<<endl;
                    // cout<<s1<<endl;
                    // cout<<s2<<endl;
                    que.pop();
                    que.push(s1);
                }
            }
        }
    }
    // while(!que.empty()){
    //     cout<<que.top()<<endl;
    //     que.pop();
    // }
    // bool se="ddcc"<"ddc";
    // cout<<se;
    string res=que.top();
    for(int i=0;i<res.size();i++){
        res[i]=100+'a'-res[i];
    }
    cout<<res<<endl;
    // printf("%s\n",res);
    return 0;
}
// 64 位输出请用 printf("%lld")

 题解:暴力求解

#include <iostream>
#include<queue>
using namespace std;
queue<int>que;
int main() {
    int T;
    scanf("%d",&T);
    while(T--)
    {
       while(!que.empty()){
        que.pop();
       }
       int n;
       scanf("%d",&n);
       for(int i=0;i<n;i++)
       {
           string s;
           cin>>s;
           getchar();
           if(s=="PUSH")
           {
               int x;
               scanf("%d",&x);
               que.push(x);
           }
           else if(s=="TOP")
           {
                if(que.empty())
                {
                    printf("%d\n",-1);
                }
                else{
                    printf("%d\n",que.front());
                }
           }
           else if(s=="POP"){
                   if(que.empty())
                {
                    printf("%d\n",-1);
                }
                else{
                    que.pop();
                }
           }
           else if(s=="SIZE"){
                  if(que.empty())
                {
                    printf("%d\n",0);
                }
                else{
                    printf("%d\n",que.size());
                }
           }
           else if(s=="CLEAR"){
                if(!que.empty())
                {
                    while(!que.empty()){
                        que.pop();
                    }
                }
           }
       }
    }
    return 0;
}
// 64 位输出请用 printf("%lld")

 题解:先判断是否有交点,如果有,分段使用积分

#include <iostream>
#include<stdio.h>
#include<math.h>
using namespace std;

int main() {
    int T;
    scanf("%d",&T);
    while(T--){
        int A,B,C;
        scanf("%d%d%d",&A,&B,&C);
        int a=B*B;
        int b=2*B*C-2*A;
        int c=C*C;
        int t=b*b-4*a*c;
      
        if(t<0){
            double res=0;
            printf("%.10f\n",res);
            // printf("%.10f\n",0);出现了错误,由于printf存在缓冲区,会去取索引位0指针的值导致出错
        }
        else if(t==0)
        {
               double x=-1.0*b/(2*a*1.0);
              double s=sqrt(2*A*1.0)*x*sqrt(x*1.0)*4/3.0;
              printf("%.10f\n",s);

        }
        else if(t>0){
               double x1=(-1*b-sqrt(t*1.0))/(2*a*1.0);
               double x2=(-1*b+sqrt(t*1.0))/(2*a*1.0);
               
            double s1=sqrt(2*A*1.0)*x1*sqrt(x1*1.0)*4/3.0;
            double s2=(sqrt(2*A*1.0)*x2*sqrt(x2*1.0)*2/3.0-B*x2*x2/2.0-C*x2)-(sqrt(2*A*1.0)*x1*sqrt(x1*1.0)*2/3.0-B*x1*x1/2.0-C*x1);
            if(C<=0)
            {
                 printf("%.10f\n",s1+s2);
            }
            else{
                 printf("%.10f\n",s2);
            }
        }
    }
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/785511.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据可视化 - 动态柱状图

基础柱状图 通过Bar构建基础柱状图 from pyecharts.charts import Bar from pyecharts.options import LabelOpts # 使用Bar构建基础柱状图 bar Bar() # 添加X轴 bar.add_xaxis(["中国", "美国", "英国"]) # 添加Y轴 # 设置数值标签在右侧 b…

上门家政系统开发|上门预约家政小程序定制系统

随着人们生活水平的提高&#xff0c;对于家政服务的需求也越来越高。上门家政小程序的开发为家政服务商家提供了一个全新的经营和服务渠道。本文将介绍上门家政小程序适合的商家以及其优势。   1. 家政公司   家政公司是最直接受益于上门家政小程序开发的商家。通过开发家政…

AMEYA360代理线:ROHM开发出EcoGaN™减少服务器和AC适配器等的损耗和体积!

全球知名半导体制造商ROHM&#xff08;总部位于日本京都市&#xff09;面向数据服务器等工业设备和AC适配器等消费电子设备的一次侧电源*1&#xff0c;开发出集650V GaN HEMT*2和栅极驱动用驱动器等于一体的Power Stage IC“BM3G0xxMUV-LB”&#xff08;BM3G015MUV-LB、BM3G007…

【JavaEE初阶】HTTP协议

文章目录 1. HTTP概述和fiddler的使用1.1 HTTP是什么1.2 抓包工具fiddler的使用1.2.1 注意事项1.2.2 fiddler的使用 2. HTTP协议格式2.1 HTTP请求格式2.1.1 基本格式2.1.2 认识URL2.1.3 方法 2.2 请求报头关键字段2.3 HTTP响应格式2.3.1 基本格式2.3.2状态码 1. HTTP概述和fidd…

nginxWebUI runCmd命令执行漏洞复现

系统描述 NginxWebUI 是一款图形化管理 nginx 配置的工具&#xff0c;可以使用网页来快速配置 nginx单机与集群的各项功能&#xff0c;包括 http协议转发&#xff0c;tcp协议转发&#xff0c;反向代理&#xff0c;负载均衡&#xff0c;静态 html服务器&#xff0c;ssl证书自动申…

【Python机器学习】实验01 Numpy以及可视化回顾

文章目录 一、Numpy的基础知识实验1 生成由随机数组成的三通道图片&#xff0c;分别显示每个维度图片&#xff0c;并将三个通道的像素四周进行填充&#xff0c;分别从上下左右各填充若干数据。 二、Numpy的线性代数运算实验2 请准备一张图片&#xff0c;按照上面的过程进行矩阵…

磁场强度单位和磁感应强度单位转换

磁学量常用单位换算 、磁场强度单位和磁感应强度单位转换。 磁场单位 Oe&#xff08;奥斯特&#xff09;,A/m,T&#xff08;特斯拉&#xff09;三种. 1T1000mT 1mT10Gs 1Gs79.6A/m 1T(特斯拉)10000Gs(高斯)1Wb/M2 1Gs(高斯)1Oe(奥斯特)

C#实现系统进程的调用,查看进程调用的模块

1.需要使用命名空间&#xff1a;System.Diagnostics; 2.Process.GetProcess()可以获取所有进程 3.获取进程调用的模块 ProcessModuleCollection modules currentProcess.Modules; foreach循环一下FileName就可以查看调用了什么dll文件了 4.有关进程的信息&#xff08;Process…

最新基于Citespace、vosviewer、R语言文献计量学可视化分析技术及全流程文献可视化SCI论文高效写作方法

目录 专题一 文献计量学方法与应用简介 专题二 主题确定、检索与数据采集 专题三 VOSviewer可视化绘图精讲 专题四 Citespace可视化绘图精讲 专题五 R语言文献计量学绘图分析 专题六 论文写作 专题七 论文投稿 文献计量学是指用数学和统计学的方法&#xff0c;定量地分析…

线性神经网络——softmax 回归随笔【深度学习】【PyTorch】【d2l】

文章目录 3.2、softmax 回归3.2.1、softmax运算3.2.2、交叉熵损失函数3.2.3、PyTorch 从零实现 softmax 回归3.2.4、简单实现 softmax 回归 3.2、softmax 回归 3.2.1、softmax运算 softmax 函数是一种常用的激活函数&#xff0c;用于将实数向量转换为概率分布向量。它在多类别…

基于STM32F10x的独立按键测试

本人基于野火指南者开发板&#xff0c;使用FreeRTOS,创建按键任务。 在按键任务里面每隔20毫秒扫描一下按键。包括独立按键&#xff0c;矩阵按键(由于本人没有矩阵按键&#xff0c;故没有测试)。 按键40毫秒以上为短按、1秒以上则为长按、3秒以上则为一直按。且长按10秒以上则…

网络安全(黑客)自学基础到高阶路线

01 什么是网络安全 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域&#xff0c;都有攻与防两面…

Docker + MYSQL 启动nacos

Docker启动nacos默认用的是内存数据库&#xff0c;重启docker容器以后&#xff0c;nacos配置会丢失&#xff0c;非常不方便。所以需要修改为使用Mysql作为nacos的存储。 1.数据库 创建mysql数据库&#xff0c;过程省略&#xff0c;将nacos 的mysql脚本在数据库中进行导入。 m…

北航投资已投企业四象科技成功发射三颗卫星

1箭4星&#xff01;2023年7月23日10时50分&#xff0c;我国在太原卫星发射中心使用长征二号丁运载火箭&#xff0c;成功将四象科技“矿大南湖号”SAR遥感卫星、“虹口复兴号”光学遥感卫星、“中电农创号”热红外遥感卫星以及银河航天灵犀03星共4颗卫星发射升空&#xff0c;卫星…

当机器人变硬核:探索深度学习中的时间序列预测

收藏自&#xff1a;Wed, 15 Sep 2021 10:32:56 UTC 摘要&#xff1a;时间序列预测是机器学习和深度学习领域的一个重要应用&#xff0c;它可以用于预测未来趋势、分析数据模式和做出决策。本文将介绍一些基本概念和常用方法&#xff0c;并结合具体的案例&#xff0c;展示如何使…

7D透明屏的市场应用广泛,在智能家居中有哪些应用表现?

7D透明屏是一种新型的显示技术&#xff0c;它能够实现透明度高达70%以上的显示效果。这种屏幕可以应用于各种领域&#xff0c;如商业广告、展览展示、智能家居等&#xff0c;具有广阔的市场前景。 7D透明屏的工作原理是利用光学投影技术&#xff0c;将图像通过透明屏幕投射出来…

VMware 创建Centos7虚拟机后nat模式无法联网

1. 网卡改为on&#xff0c;dhcp模式&#xff0c;重启网卡&#xff0c;如果还是无法联网 2.修改 /etc/resolv.conf&#xff0c;增加DNS 223.5.5.5,保存后即可ping 通百度&#xff0c;联网。在此记录一下

SolVES模型安装教程

前文是关于SolVES模型扫盲&#xff0c;熟悉SolVES模型的伙伴可直接跳到下面的安装教程。 目前生态系统服务评估主要集中于经济价值&#xff0c;相关的评估方法也较多&#xff0c;如价值当量法、InVEST模型法、市场价格法等&#xff0c;而随着生态系统服务的社会价值得到越多越…

firefox笔记-Centos7离线安装firefox

目前&#xff08;2023-03-22 16:41:35&#xff09;Centos7自带的firefox已经很新了是2020年的。主要原因是有个web项目&#xff0c;用2020年的firefox打不开。 发到互联网上是2023-07-24。 报错是js有问题&#xff0c;估计是搞前端的只做了chrome适应&#xff0c;没做firefox…

将数据转二进制流文件,用PostMan发送二进制流请求

一、将byte数组转二进制流文件&#xff0c;并保存到本地 byte [] oneshotBytesnew byte[]{78,-29,51,-125,86,-105,56,82,-94,-115,-22,-105,0,-45,-48,-114,27,13,38,45,-24,-15,-13,46,88,-90,-66,-29,52,-23,40,-2,116,2,-115,17,36,15,-84,88,-72,22,-86,41,-90,-19,-58,19…