【每日算法Day 95】美团笔试题:四面体方案个数

简介: 【每日算法Day 95】美团笔试题:四面体方案个数

今天就更新一道刚做的美团在线编程题吧。

题目描述

一个四面体,顶点为 S, A, B, C。从 S 出发,每次任意选一条棱走到另一个顶点,可重复走过所有顶点和棱。问走  次之后,回到 S 的方案数是多少?答案对  取模。

题解

明显这是一道动态规划题目,我们令  表示走了  次之后回到 S 的方案数,令  表示走了  次之后在  的概率。注意到这里 A, B, C 是对称的,所以方案数应该完全相同,所以我们定义一个就行了。

那么  步回到 S 的方案数应该就是  步在 A, B, C 的方案数之和:

步在 A 的方案数就是  步在 B, C 的方案数加上  步在 S 的方案数:

当然空间还可以优化,因为只跟上一步有关,所以保存上一步两个状态值就行了。

代码

c++

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod = 1e9 + 7;
const int N = 1000010;
ll dp[N][2];
int main() {
    int k;
    scanf("%d", &k);
    memset(dp, 0, sizeof dp);
    dp[0][0] = 1;
    for (int i = 1; i <= k; ++i) {
        dp[i][0] = (dp[i-1][1] * 3) % mod;
        dp[i][1] = (dp[i-1][1] * 2 + dp[i-1][0]) % mod;
    }
    printf("%lld\n", dp[k][0]);
    return 0;
}

空间优化(c++)

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod = 1e9 + 7;
const int N = 1000010;
ll dp[2];
int main() {
    int k;
    scanf("%d", &k);
    dp[0] = 1;
    dp[1] = 0;
    for (int i = 1; i <= k; ++i) {
        int a = (dp[1] * 3) % mod;
        int b = (dp[1] * 2 + dp[0]) % mod;
        dp[0] = a;
        dp[1] = b;
    }
    printf("%lld\n", dp[0]);
    return 0;
}
相关文章
|
7天前
|
传感器 人工智能 监控
智慧电厂AI算法方案
智慧电厂AI算法方案通过深度学习和机器学习技术,实现设备故障预测、发电运行优化、安全监控和环保管理。方案涵盖平台层、展现层、应用层和基础层,具备精准诊断、智能优化、全方位监控等优势,助力电厂提升效率、降低成本、保障安全和环保合规。
智慧电厂AI算法方案
|
3月前
|
机器学习/深度学习 自然语言处理 算法
【数据挖掘】金山办公2020校招大数据和机器学习算法笔试题
金山办公2020校招大数据和机器学习算法笔试题的解析,涵盖了编程、数据结构、正则表达式、机器学习等多个领域的题目和答案。
100 10
|
7天前
|
传感器 人工智能 监控
智慧化工厂AI算法方案
智慧化工厂AI算法方案针对化工行业生产过程中的安全风险、效率瓶颈、环保压力和数据管理不足等问题,通过深度学习、大数据分析等技术,实现生产过程的实时监控与优化、设备故障预测与维护、安全预警与应急响应、环保监测与治理优化,全面提升工厂的智能化水平和管理效能。
智慧化工厂AI算法方案
|
1月前
|
算法 Java 数据库
美团面试:百亿级分片,如何设计基因算法?
40岁老架构师尼恩分享分库分表的基因算法设计,涵盖分片键选择、水平拆分策略及基因法优化查询效率等内容,助力面试者应对大厂技术面试,提高架构设计能力。
美团面试:百亿级分片,如何设计基因算法?
|
1月前
|
算法 Java 数据库
美团面试:百亿级分片,如何设计基因算法?
40岁老架构师尼恩在读者群中分享了关于分库分表的基因算法设计,旨在帮助大家应对一线互联网企业的面试题。文章详细介绍了分库分表的背景、分片键的设计目标和建议,以及基因法的具体应用和优缺点。通过系统化的梳理,帮助读者提升架构、设计和开发水平,顺利通过面试。
美团面试:百亿级分片,如何设计基因算法?
|
24天前
|
存储 JSON 算法
TDengine 检测数据最佳压缩算法工具,助你一键找出最优压缩方案
在使用 TDengine 存储时序数据时,压缩数据以节省磁盘空间是至关重要的。TDengine 支持用户根据自身数据特性灵活指定压缩算法,从而实现更高效的存储。然而,如何选择最合适的压缩算法,才能最大限度地降低存储开销?为了解决这一问题,我们特别推出了一个实用工具,帮助用户快速判断并选择最适合其数据特征的压缩算法。
30 0
|
3月前
|
机器学习/深度学习 存储 人工智能
【数据挖掘】2022年2023届秋招知能科技公司机器学习算法工程师 笔试题
本文是关于2022-2023年知能科技公司机器学习算法工程师岗位的秋招笔试题,包括简答题和编程题,简答题涉及神经网络防止过拟合的方法、ReLU激活函数的使用原因以及条件概率计算,编程题包括路径行走时间计算和两车相向而行相遇时间问题。
77 2
【数据挖掘】2022年2023届秋招知能科技公司机器学习算法工程师 笔试题
|
3月前
|
机器学习/深度学习 自然语言处理 算法
【数据挖掘】2020奇安信秋招算法方向试卷1 笔试题解析
2020年奇安信秋招算法方向试卷1的题目解析,覆盖了数据结构、机器学习、深度学习、自然语言处理、排序算法、激活函数、主题模型、采样方法、图像处理等多个领域的知识点。
48 1
【数据挖掘】2020奇安信秋招算法方向试卷1 笔试题解析
|
3月前
|
机器学习/深度学习 存储 算法
【数据挖掘】2020奇安信秋招算法方向试卷3 笔试题解析
2020年奇安信秋招算法方向试卷3的题目解析,涵盖了数据结构、机器学习、深度学习、自然语言处理、排序算法、激活函数、PCA、词嵌入库等多个领域的知识点。
54 1
【数据挖掘】2020奇安信秋招算法方向试卷3 笔试题解析
|
3月前
|
机器学习/深度学习 人工智能 算法
【数据挖掘】2022年2023届秋招奇虎360机器学习算法工程师 笔试题
本文提供了奇虎360公司2022年秋招机器学习算法工程师岗位的笔试题内容,包括选择题和编程题,涉及概率统计、数据结构、机器学习、计算机组成原理等多个领域。
95 5