博客
关于我
反恐训练营
阅读量:200 次
发布时间:2019-02-28

本文共 1602 字,大约阅读时间需要 5 分钟。

根据上述分析,我们可以使用动态规划的方法来解决这个问题。具体步骤如下:

  • 初始化一个二维数组 f,大小为 (n+1) x (m+1),其中 n 是子弹和恐怖分子的类型数,m 是序列的长度。
  • 填充边界条件:当 i=0j=0 时,f[i][j] = 0
  • 遍历每个 ij,计算 f[i][j]
    • 如果 a[i] == b[j],则 f[i][j] = max(f[i-1][j], f[i][j-1], f[i-1][j-1] + score[a[i]])
    • 否则,f[i][j] = max(f[i-1][j], f[i][j-1])
  • 最终,f[m][n] 就是炜炜能获得的最大分数。
  • 通过这种方法,我们可以高效地计算出最优解。

    以下是实现代码:

    #include 
    #include
    #include
    #include
    using namespace std;int main() { int n; while (cin >> n) { string a_sub, b_sub; for (int i = 1; i <= n; ++i) { a_sub += tolower(cin >> (char&c)); b_sub += tolower(cin >> (char&c)); } map
    score; for (int i = 1; i <= n; ++i) { int x; cin >> x; score[tolower(a_sub[i-1])] = x; } int len_a = a_sub.size(); int len_b = b_sub.size(); vector
    > dp(len_a + 1, vector
    (len_b + 1, 0)); for (int i = 1; i <= len_a; ++i) { for (int j = 1; j <= len_b; ++j) { if (a_sub[i-1] == b_sub[j-1]) { if (i == 1 || j == 1) { dp[i][j] = score[a_sub[i-1]]; } else { dp[i][j] = dp[i-1][j-1] + score[a_sub[i-1]]; } } else { dp[i][j] = max(dp[i-1][j], dp[i][j-1]); } } } cout << dp[len_a][len_b] << endl; } return 0;}

    代码解释:

  • 输入处理: 读取子弹和恐怖分子的类型数 n,然后读取各自的序列 a_subb_sub。接着读取每个字母对应的得分 score
  • 动态规划初始化: 创建一个二维数组 dp,大小为 (len_a + 1) x (len_b + 1),初始化为0。
  • 填充边界条件:i=1j=1 时,如果 a_sub[i-1] == b_sub[j-1],则 dp[i][j] = score[a_sub[i-1]],否则 dp[i][j] = 0
  • 状态转移: 遍历每个 ij,根据子弹和恐怖分子的当前字符是否匹配,更新 dp[i][j] 的值。
  • 输出结果: 打印最终的最大分数 dp[len_a][len_b]
  • 通过这种方法,我们可以高效地解决问题,并找到炜炜能获得的最大分数。

    转载地址:http://hptn.baihongyu.com/

    你可能感兴趣的文章
    OAuth2.0_环境搭建_Spring Security OAuth2.0认证授权---springcloud工作笔记139
    查看>>
    oauth2.0协议介绍,核心概念和角色,工作流程,概念和用途
    查看>>
    OAuth2.0四种模式的详解
    查看>>
    OAuth2授权码模式详细流程(一)——站在OAuth2设计者的角度来理解code
    查看>>
    oauth2登录认证之SpringSecurity源码分析
    查看>>
    OAuth2:项目演示-模拟微信授权登录京东
    查看>>
    OA系统多少钱?OA办公系统中的价格选型
    查看>>
    OA系统选型:选择好的工作流引擎
    查看>>
    OA让企业业务流程管理科学有“据”
    查看>>
    OA项目之会议通知(查询&是否参会&反馈详情)
    查看>>
    Vue.js 学习总结(13)—— Vue3 version 计数介绍
    查看>>
    OA项目之我的会议(会议排座&送审)
    查看>>
    OA项目之我的会议(查询)
    查看>>
    OA项目之我的审批(会议查询&会议签字)
    查看>>
    OA项目之项目简介&会议发布
    查看>>
    ObjC的复制操作
    查看>>
    Object c将一个double值转换为时间格式
    查看>>
    object detection之Win10配置
    查看>>
    object detection训练自己数据
    查看>>
    object detection错误Message type "object_detection.protos.SsdFeatureExtractor" has no field named "bat
    查看>>