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笔试题 的相关文章

  • 宋浩概率论与数理统计-第三章-笔记

    概率论与数理统计 第三章 3 1 1 二维随机变量及其分布函数 联合分布 边缘分布 3 1 2 二维离散型的联合分布和边缘分布 3 1 3 二维连续型的联合分布和边缘分布 联合分布 边缘分布 3 2 1 条件分布 3 2 2 离散型的条件分
  • 常用的概率分布:伯努利分布、二项分布、多项式分布、高斯分布、指数分布、拉普拉斯分布和Dirac-delta分布

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

    目录 相关系数的比较 数据的类型 回归模型的统计检验与统计意义 参数检验 非参数检验 统计距离 量表 李克特量表 权重 聚类图分析 聚类分析简介 聚类的用途 聚类方法 两步聚类法 TwoStep Cluster 箱线图分析 中心位置的作用
  • [概率论与数理统计-5]:一元连续随机变量=>几何图形=>样本空间=>组合样本=>长度/面积/体积=>几何概率

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 123727473 目录 第1章 什么是
  • 机器学习:EM算法

    一 初识EM算法 EM算法也称期望最大化 Expectation Maximum 简称EM 算法 它是一个基础算法 是很多机器学习领域算法的基础 比如隐式马尔科夫算法 HMM 等等 EM算法是一种迭代优化策略 由于它的计算方法中每一次迭代都
  • [洛谷] [NOIP2018 提高组] 旅行 加强版 - 基环树

    题目链接 https www luogu com cn problem P5049 题目描述 小 Y 是一个爱好旅行的 OIer 她来到 X 国 打算将各个城市都玩一遍 小Y了解到 X国的 n 个城市之间有 m 条双向道路 每条双向道路连接
  • 双因素方差分析(R)

    目录 原理 双因素等重复试验的方差分析 假设前提和模型设定 离差平方和分解 检验统计量和拒绝域 例题 应用 双因素无重复试验的方差分析 假设前提和模型设定 离差平方和分解 检验统计量和拒绝域 例题 应用 原理 在单因素方差分析的基础上 双因
  • 概率论的几种常考分布总结

    两点分布 0 1分布 X b 1 p 二项分布 X b n p k 0 1 2 n 指数分布 参数为 线性分布 参数为a b 泊松分布 X k 0 1 2 n
  • leetcode刷题(四)——概率论与数理统计(一)

    leetcode刷题系列四 主要的内容涉及概率论和数理统计的知识 例题 算法分析 int dp 12 70 double dicesProbability int n int returnSize int i j k double f do
  • 《深度学习》读书笔记:第3章 概率与信息论

    目录 第3章 概率与信息论 3 1 为什么要使用概率 3 2 随机变量 3 3 概率分布 3 3 1 离散型变量和概率质量函数 3 3 2 连续型变量和概率密度函数 3 4 边缘概率 3 5 条件概率 3 6 条件概率的链式法则 3 7 独
  • 【机器学习系列】变分推断第三讲:基于随机梯度上升法SGD的变分推断解法

    作者 CHEONG 公众号 AI机器学习与知识图谱 研究方向 自然语言处理与知识图谱 阅读本文之前 首先注意以下两点 1 机器学习系列文章常含有大量公式推导证明 为了更好理解 文章在最开始会给出本文的重要结论 方便最快速度理解本文核心 需要
  • 统计学笔记(四)概率与概率分布

    文章目录 1 随机事件及其概率 1 1 随机事件的几个基本概念 1 2 事件的概率 2 离散型随机变量及其分布 2 1 基本概念 2 2 分布 2 2 1 二项分布 2 2 2 泊松分布 3 连续型随机变量的概率分布 3 1 基本概念 3
  • 光线追踪渲染实战(五):低差异序列与重要性采样,加速收敛!

    项目代码仓库 GitHub https github com AKGWSB EzRT gitee https gitee com AKGWSB EzRT 目录 前言 1 低差异序列介绍 2 sobol 序列及其实现 2 1 生成矩阵与递推式
  • CS109: Probability for Computer Scientists笔记1

    维生素C吃多了会上火 个人CSDN博文目录 CS109 Probability for Computer Scientists Summer 2022笔记合集
  • 【人工智能】5.不确定性推理

    一 不确定推理预备知识 1 不确定性推理的含义 不确定性推理实际上是一种从不确定的初始证据出发 通过运用不确定性知识 最终推出具有一定程度的不确定性但却又是合理或基本合理的结论的思维过程 2 不确定推理基本问题 1 不确定性的表示 知识的不
  • 舒尔补-边际概率-条件概率

    margin求边际概率的时候喜欢通过舒尔补的形式去操作信息矩阵 如p b c 求积分p a b c da 从上图可知 边缘概率直接看协方差矩阵比较方便 边际概率的方差就是取对应联合分布中相应的协方差块 信息矩阵是由舒尔补的形式计算 此形式也
  • 机器学习模型评价指标(准确率、精度、召回率)

    模型评价指标 准确率 精度 召回率 机器学习中我们常常使用准确率 精度 召回率三大指标评价一个模型训练的好坏 那么这三大参数分别代表什么意义 在介绍评价指标前 需要先明确几个计算指标 真正例 True Positive TP 模型将测试样本
  • 多维随机变量及其分布(四):

    一 二维随机变量及其分布函数 1 二维随机变量 设随机变量 Z X Y 则有 Z X Y 一个随机变量是有两个随机变量决定的 2 联合分布函数的基本性质 单调性 F x y 分别对x 或y是单调不减的 即 对任意固定的y 当 x1 lt x
  • 自信息量和一阶熵

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

    设二维随机变量 的概率密度为 关于 的边缘概率密度为 若对于固定的 有 则称 为在 条件下的 的条件概率密度 记为

随机推荐

  • 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