2021.9.5笔试题

2023-11-20

第一题

题目:

找x^{y}=target,数字特别大,可能会溢出

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
struct node {
    double val;
    int x, y;
    bool operator<(const node& a) const {
        return val < a.val;
    }
};
LL w[507];
vector<node> num;
int n, m;
int binary_search(LL x) {
    double key = log(x);
    int l = 0, r = num.size() - 1;
    while(l<=r) {
        int mid = (l+r) / 2;
        if(abs(num[mid].val - key) <= 1e-9) return mid;
        else if(num[mid].val > key) r = mid - 1;
        else                        l = mid + 1;
    }
    return -1;
}
int main()
{
    cin >> n >> m;
    for(int i=0; i<n; i++) cin >> w[i];
    for(int i=0; i<n; i++)
        for(int j=i+1; j<n; j++) {
            double val = log(w[i]) * w[j];
            node tmp = {val, i, j};
            num.push_back(tmp);
 
            val = log(w[j]) * w[i];
            node ttmp = {val, j, i};
            num.push_back(ttmp);
        }
    sort(num.begin(), num.end());
    for(int i=0; i<m; i++) {
        LL x; cin >> x;
        int pos = binary_search(x);
        if(pos == -1) cout << "-1 -1\n";
        else          cout << w[num[pos].x] << " " << w[num[pos].y] << endl;
    }
    return 0;
}

思路:

 首先将他们的所有可能的幂以log方式保存起来,然后二分法查找log(target)和这些保存的数;如果可以找到(差距小于1e-9),那么返回找到的x和y,否则返回-1,-1;注意target可能是long long;注意数字的范围,避免溢出问题;

第二题

题目:

x^k = y

x + y = b

(k>0, b>0) 求两条曲线在第一象限的相交面积 

代码:

#include <bits/stdc++.h>
using namespace std;
int k, b;
double binary_search(int k, int b) {
    double l = 0, r = b;
    while(l<=r) {
        double mid = (l+r) * 0.5;
        if(k * log(mid) > log(1e6)) {
            r = mid;
            continue;
        }
        if(abs(mid + pow(mid, k)  - b) < 1e-9) return mid;
        else if(mid + pow(mid, k) > b)  r = mid;
        else                            l = mid;
    }
    return l;
}
int main()
{
    cin >> k >> b;
    double x = binary_search(k, b);
    // printf("%lf %lf\n", x, x + pow(x, k));
    double area = pow(x, k+1) / (k+1) + pow(x, k) * pow(x, k) * 0.5;
    printf("%.6lf\n", area);
    return 0;
}

思路:

首先使用二分法确定交点,然后将公式代入方程进行计算;

第三题

题目:

跳马问题,有一个起始点;给定一个矩形场地,场地中的元素要么是r,要么是b,跳马的时候只能跳日字,只能从r跳到b或者从b跳到r;求所有可以访问到的地毯数目;

代码:

int main(){
    int n=3,m=3;
    cin>>n>>m;
    vector<vector<char>> v(n, vector<char>(m,0));
    //vector<vector<char>> v={{'b','b','b'},{'b','r','b'},{'b','b','b'}};
    vector<vector<int>> steps={{1,-2},{1,2},{-1,-2},{-1,2},{2,1},{2,-1},{-2,-1},{-2,1}};
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            cin>>v[i][j];
        }
    }
    int startx=2,starty=2;
    cin>>startx>>starty;
    vector<vector<int>> mark(n,vector<int>(m,0));
    queue<pair<int,int>> q;
    q.push({startx-1,starty-1});
    mark[startx-1][starty-1]=1;
    int count=1;
    while(!q.empty()){
        pair<int,int> tmp=q.front();q.pop();
        for(int i=0;i<steps.size();i++){
            int newi=tmp.first+steps[i][0];
            int newj=tmp.second+steps[i][1];
            if(newi<0||newi>=n||newj<0||newj>=m)continue;
            if(mark[newi][newj]!=0)continue;
            if(v[newi][newj]!=v[tmp.first][tmp.second]){
                mark[newi][newj]=1;
                count+=1;
                q.push({newi,newj});
            }
        }
    }
    cout<<count<<endl;
    return 0;
}

思路:使用bfs,进行剪枝,遍历;

第四题

题目:

给定字符串,求STAR数目,两两字符之间不能相邻;

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 1e5 + 7;
LL dp[N][4];
int n;
int main()
{
    cin >> n;
    string str;
    cin >> str;
    for(int i=1; i<=n; i++) {
        for(int j=0; j<4; j++) dp[i][j] = dp[i-1][j];

        if(str[i-1] == 'S') dp[i][0] += 1;
        else if(str[i-1] == 'T') {
            if(i>=2) dp[i][1] += dp[i-2][0];
        }
        else if(str[i-1] == 'A') {
            if(i>=2) dp[i][2] += dp[i-2][1];
        }
        else if(str[i-1] == 'R') {
            if(i>=2) dp[i][3] += dp[i-2][2];
        }

    }
    cout << dp[n][3] << endl;
    return 0;
}

思路:使用动态规划,有四种不同的子串:分别以S, T, A, R结尾;动态规划递推式:

d[i][j]+=d[i-2][j-1],将邻接的隔离关系表示的很好; i表示字符的位置,j表示式S,T,A,R中的哪一个;主要在于动态规划的活学活用;

第五题

题目:
小A在玩一个网络游戏,有一个抽装备环节。装备池总共有n+m件装备, 分别为n件普通装备和m件ssr装备。每次抽中一件ssr级装备,花费2元, 不放回。每次抽中一件普通装备,花费1元, 放回。所有装备抽中的概率相等。问:小A若想抽走所有ssr级装备,所有花费的期望是多少元?

代码:

#include <iostream>
using namespace std;
double ans;
int main()
{
    int n, m; cin >> n >> m;
    for(int i=1; i<=m; i++)
        ans += 2.0 + double(n) / double(i);
    printf("%.2lf\n", ans);
    return 0;
}

想法:

        换一种方式求解概率论;如果有n张普通卡,m张ssr卡,假设平均随机抽取N次,从期望来讲,抽到一张m卡,对应抽到n/m张普通卡;所以第m-i次抽到ssr卡的期望金币是:

        2*1+1*n/i;最后结果累加,就是图中所示的结果;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2021.9.5笔试题 的相关文章

  • 快速搞懂无偏估计及样本方差中的n-1

    期望EX 方差DX 我们知道任一样本和总体是同分布的 所以任一样本的期望即总体期望 均值 任一样本的方差即总体方差 所以对于任一样本X 有 E X E
  • GM(1,1)预测模型的残差检验、关联度检验、后验差检验代码

    在建立好灰色模型后 首先要进行模型的检验 以检验模型的效果 一般有三种检验方法 相对残差检验 关联度检验 后验差检验 当三种检验全部通过时 表明模型的效果较好 才可以使用模型进行后续的预测 否则 将要对模型进行残差修正 直到三种检验均通过为
  • 常用的概率分布:伯努利分布、二项分布、多项式分布、高斯分布、指数分布、拉普拉斯分布和Dirac-delta分布

    伯努利分布 Bernoulli distribution 伯努利分布 单个二值随机变量的分布 由单个参数 0 1 控制 例 抛硬币 正面朝上的概率 二项式分布 binomial distrubution 二项式分布 在n次试验中事件A恰好发
  • 期末考试复习笔记(标红表示重要)

    目录 相关系数的比较 数据的类型 回归模型的统计检验与统计意义 参数检验 非参数检验 统计距离 量表 李克特量表 权重 聚类图分析 聚类分析简介 聚类的用途 聚类方法 两步聚类法 TwoStep Cluster 箱线图分析 中心位置的作用
  • 全概率公式习题

    简单的记录下关于全概率公式的习题 我们可以先看下抓阄不分先后的一个例子 设袋中装有10个阄 其中8个是白阄 2个是有物之阄 甲 乙二人依次抓取一个 求没人抓得有物之阄的概率 设A B分别为甲 乙抓得有物之阄的事件 显然P A 2 10 下面
  • 概率论的几种常考分布总结

    两点分布 0 1分布 X b 1 p 二项分布 X b n p k 0 1 2 n 指数分布 参数为 线性分布 参数为a b 泊松分布 X k 0 1 2 n
  • 【Basis】变分推断以及VIEM

    在包含隐变量 latent variables 的推断问题中 针对连续性随机变量的情况 隐变量的高维以及被积函数 intergrand 的复杂度使积分 intergration 无法进行 而针对离散型随机变量 隐变量呈指数 exponent
  • 4.抽样分布的概念与Python实现抽样

    1 总体与样本 在实际中 总体的分布一般是未知的 或只知道它具有某种形式而其中包含着未知参数 这时 常用的办法就是根据样本来推断总体 总体 个体 样本 总体 通常把研究对象的全体称为总体 一个总体对应于一个随机变量X 个体 把组成总体的每个
  • Leetcode之循环轮转矩阵

    题目 给你一个大小为 m x n 的整数矩阵 grid 其中 m 和 n 都是 偶数 另给你一个整数 k 矩阵由若干层组成 如下图所示 每种颜色代表一层 矩阵的循环轮转是通过分别循环轮转矩阵中的每一层完成的 在对某一层进行一次循环旋转操作时
  • 概率论入门

    概率论入门 导论 概率论解决随机问题的本质 就是把局部的随机性转变为整体上的确定性 概率论的产生 能让我们对未来随机事件发生做出数学上的确定性判断 这是概率论的思想基石 概率论作为一种数学工具的基本思路 正式基于这种整体的 全局性的思考框架
  • 第八章 假设检验

    目录 一 假设检验的基本概念 假设及假设检验的定义 原假设与备择假设 基本思想 接受域与拒绝域 假设检验的分类 两类错误 二 一个正态总体下的参数假设检验 期望 方差的假设检验 三 两个正态总体下的参数假设检验 期望的差异性 方差的差异性的
  • 一.用matlab生成想要的分布数据——均匀分布

    给大家讲讲怎么用matlab生成想要分布的随机数吧 1 均匀分布 2 正态分布 3 对数正态分布 4 gumbel分布 5 weibull分布 6 指数分布 7 Raili分布 1 均匀分布 matlab的rand指令可以帮助我们生成0 1
  • SPSS知识点复习

    一 T检验 对连续变量使用的方法 T检验 方差检验 1 均值 Means 过程 完成数据分组输出描述统计量 2 T检验 用t分布理论来推论差异发生的概率 从而比较两个平均数的差异是否显著 前提 总体服从正态分布 样本量不超过30 3 单样本
  • 机器学习模型评价指标(准确率、精度、召回率)

    模型评价指标 准确率 精度 召回率 机器学习中我们常常使用准确率 精度 召回率三大指标评价一个模型训练的好坏 那么这三大参数分别代表什么意义 在介绍评价指标前 需要先明确几个计算指标 真正例 True Positive TP 模型将测试样本
  • 论文R语言复现

    高斯混合概率在众多领域都有重要应用 依据已知观测数据估计高斯模型中未知参数就显得尤为重要 由于观测值具体来自于高斯分布的哪个分模型是未知的 那么利用传统的极大似然 MLE 方法进行参数估计就变得十分困难 引入 EM 算法 该方法通过构造分布
  • 概率论【离散型二维变量与连续性二维变量(下)】--猴博士爱讲课

    6 连续型二维变量 下 1 7 求边缘分布函数 边缘概率密度 边缘概率密度 2 7 求边缘密度函数 边缘概率密度 3 7 判断连续型二维变量的独立性 F x y Fx X Fy Y 那么X Y互相独立 f x y fx X fy Y 那么X
  • 先验概率及后验概率等解释

    20201010 0 引言 在学习统计学的时候 在概率估计的部分 经常会遇到最大似然估计 最大后验估计等名词 这些似然和后验 都跟贝叶斯准则中的一些名词定义有关 这里参考书籍 Think Bayes 这部书 来记录这些名词 1 由糖果例子来
  • 决策树之用信息增益选择最优特征

    决策树之用信息增益选择最优特征 熵 熵的定义 熵 sh ng 热力学中表征物质状态的参量之一 用符号S表示 其物理意义是体系混乱程度的度量 在决策树中 信息增益是由熵构建而成 表示的是 随机变量的不确定性 不确定性越大 代表着熵越大 随机变
  • 2021.9.5笔试题

    第一题 题目 找x y target 数字特别大 可能会溢出 代码 include
  • 自信息量和一阶熵

    信息论中 自信息量和一阶熵是用来度量信息的重要概念 它们提供了一种方式来理解和量化信息的不确定性和平均量 对于解决信息传输 编码和存储等问题非常有用 首先 让我们来了解一下自信息量 自信息量是用来度量一个事件的信息量或不确定性的大小 假设有

随机推荐

  • Unity使用spine动画

    Unity使用spine动画 在 Unity 中 常常使用 Spine 来制作一些动画 引擎本身并不能直接播放 Spine 动画 需要额外导入一个 RunTime 插件库才能支持 官网插件导入 当然 也可以到 Spine 官网关于 Unit
  • 机器学习原理(1)集成学习基本方法

    一 什么是集成学习 集成学习 ensemble learning 通过将多个学习器进行组合来完成学习任务 下图显示集成学习的一般结构 取自周志华老师的西瓜书 个体学习器通常由一种现有的学习算法从训练数据产生 例如决策树 C4 5 CART
  • C语言之——自定义数据类型

    目录 前言 什么是自定义数据类型 一 自定义数据类型之 数据类型命名 1 深入应用typedef 二 自定义数据类型之 结构体类型命名 1 深入理解struct结构体 三 自定义数据类型之 联合体类型命名 1 union与struct的区别
  • FreeRTOS多任务调度器基础

    Cortex M4中SysTick调度器核心 Cortex M4中的中断管理 Cortex M4中影子栈指针 Cortex M4中SVC和PendSV异常 1 Cortex M4中SysTick调度器核心 systick每一次中断都会触发内
  • c语言—指针非常全面、详细

    目录 一 初步认识指针 一级 二 数组指针 1 一维数组与指针 2 二维数组与指针 三 函数指针 四 指针数组 2 函数指针数组 五 指针函数 六 二级 多级 指针 七 指针定义的归纳 一 初步认识指针 一级 1 指针变量 指针变量是一个特
  • c++优先队列简介及例题:5.4.1 围栏修复

    优先队列 其实就是个队列 只不过里面的元素会被自动按一定的顺序来排列 可以是递增顺序 也可以是递减顺序 写法如下 头文件 include
  • 020 - STM32学习笔记 - Fatfs文件系统(二) - 移植与测试

    020 STM32学习笔记 Fatfs文件系统 二 移植与测试 上节学习了FatFs文件系统的相关知识 这节内容继续学习在STM32上如何移植FatFs文件系统 并且实现文件的创建 读 写与删除等功能 各位看官觉得还行的话点点赞 收藏一下呗
  • FastDFS-01-单机和集群搭建

    我是码赛客1024 本节我们一起搭建FastDFS 一 介绍 FastDFS是一个开源的轻量级分布式文件系统 它对文件进行管理 功能包括 文件存储 文件同步 文件访问 文件上传 文件下载 等 解决了大容量存储和负载均衡的问题 特别适合以文件
  • 对象创建的几个步骤

    对象创建的几个步骤 一 先把要创建的对象的类信息加载进内存 二 在内存开辟空间 1 如果内存是规整的 则使用指针碰撞 2 如果不规整 则会维护一个空闲列表 内存是否规整根据具体的垃圾回收算法来决定 三 开辟空间需要解决并发问题 在堆中创建对
  • shell脚本一键安装JDK及配置环境变量

    这是我学了半天shell写出来的 不适合大神看 为什么我要写这样安装JDK并配置环境变量的脚本呢 因为我和linux打交道还是比较多的 然而每次都要安装JDK 配置环境变量 这样的事情对于刚接触linux的人来说是很乐意做的 但是接触多了
  • 浏览器请求队列机制-请求为什么会阻塞

    前言 最近遇到一个问题 我1个站点链接2个后端服务 但1个后端服务有问题 导致访问超时 但请求接口都是分开的 自认为一个服务站点请求超时 不会影响到另外一个请求的 但不是 全部请求都发不出去 为什么呢 是不是浏览器有请求机制管理 正常情况前
  • html理解MVC模型与MVVM模型底层实现

    一 MVC模型的底层实现 1 1 相关代码 div div
  • python基础编程小实例13——手机通讯录

    本文更新于2022 05 18 bug已修复 编程语言 python3 9 题目 可以在通讯录中通过姓名查看相关联系人的联系方式等信息 也可以在其中新增联系人 或修改 删除联系人信息 本实例要求编写程序 实现具备添加 查看 修改以及删除联系
  • react 上传文件(多选)功能入的坑

    1 这里报错是因为onChange的this指向不对 解决方法在constructor中写 this onChange this onChange bind this 或者在绑定事件的时候写 onChange this onChange b
  • Unity Animator 动画没切换

    恶魔射手 Survival Shooter 项目 有两个动画 一个是静止时的Idle 一个是走路时候的Move 如下图 设置好动画状态机后发现按方向键后还是Idle 没反应 而一直按着方向键后呢又动起来了 最后找到了真相 原来选中了 Has
  • 使用yolov7模型用VOC深度学习

    yolov7及VOC数据集 权重文件地址 bubbliiiing yolov7 pytorch 这是一个yolov7的库 可以用于训练自己的数据集 github com 在colab中 训练 1 voc annotation py 如果使用
  • Python 判断数组list是否为空

    前言 判断数组为空 是一个常见用法 Python与Java的方法不同 需区分 Python 方法 1 根据长度判断 长度为0时 表示空 其中 判断条件 成立时 非零 则执行后面的语句 lst if len lst print c else
  • 如何在mybatis 中传多个参数,如何在mybatis 中遍历 集合?

    如何在mybatis 中传多个参数 List getIdByRand Param question Question question Param sectionIdList List sectionIdList param 映射参数到 x
  • .NET的RulesEngine(规则引擎)使用

    本文目录 1 背景说明 1 1 规则引擎的使用场景 1 2 demo的代码说明 2 演示 2 1 入门demo演示 2 1 1 代码展示 2 1 2 代码下载 2 2 规则参数说明 2 2 1 第一部分参数说明 2 2 2 第二部分参数说明
  • 2021.9.5笔试题

    第一题 题目 找x y target 数字特别大 可能会溢出 代码 include