思路:动态规划

题目中提到的有四个按键,但实际上,我们可以压缩为2个选择,因为对于最优解,Ctrl+V一定在Ctrl+A-Ctrl+C两个按键后

【dp数组含义】:按键i次后屏幕显示dp[i]个A

【状态】:剩余可按键数量N

【选择】:
①按A;
②按Ctrl+V(需通过额外变量j来确定Ctrl+C的位置,从而确定剪贴板中A的个数dp[j - 2])

【状态转移方程】:dp[i] = max(dp[i - 1] + 1, dp[j - 2] * (i - j + 1));

#include <iostream>
#include <vector>using namespace std;int maxA(int N) {// dp数组含义:按键i次后屏幕显示dp[i]个Avector<int> dp(N + 1, 0);// 压缩为2个选择 → [1]按A;[2]按Ctrl-V (包含前方必有的Ctrl-A + Ctrl-C)for (int i = 1; i <= N; i++) {// [1]按Adp[i] = dp[i - 1] + 1;// [2]按Ctrl-V (包含前方必有的Ctrl-A + Ctrl-C)//(需通过额外变量j来确定Ctrl+C的位置,从而确定剪贴板中A的个数dp[j - 2]))for (int j = 2; j < i; j++) // dp[j - 2]表示剪贴板中A的个数,减去的2即为CA + CC两个组合键dp[i] = max(dp[i], dp[j - 2] * (i - j + 1)); // 最多可按(i-j)次C_V,还要加上本身,所以可以看做可按(i - j + 1)个Ctrl-V}return dp[N];}int main(){int res=maxA(499);cout<<res<<endl;
}

4键键盘(Leetcode651)相关推荐

  1. 【华为OD机试真题 python】 5键键盘【2022 Q4 | 100分】

    ■ 题目描述 [5键键盘] 有一个特殊的5键键盘,上面有a,ctrl-c,ctrl-x,ctrl-v,ctrl-a五个键. a键在屏幕上输出一个字母a:ctrl-c将当前选择的字母复制到剪贴板: ct ...

  2. 67键键盘如何输出`和~符号(一百五十一)

    1.使用需求 因为67键键盘符合黄金分割,看上去特别舒服,但是在使用67键蓝牙键盘的时候,因为最上一排没有F1.F2...等,所以需要输出F1.F2需要借助Fn键 . 但是需要输出的特殊的" ...

  3. 计算机各键的名称和作用,space是哪个键键盘各键位名称及功用详解

    摘要 腾兴网为您分享:space是哪个键键盘各键位名称及功用详解,之了课堂,云南移动,宜信,学堂在线等软件知识,以及winrar安卓,国泰君安大智慧5,邮政app,骑驴网,s2520打印机,b站,我的 ...

  4. 华为od统一考试B卷【5键键盘】Java 实现

              所有题目均有五种语言实现.C实现目录.C++ 实现目录.Python实现目录.Java实现目录.JavaScript实现目录 题目 [5键键盘] 有一个特殊的5键键盘,上面有a,c ...

  5. 【华为OD统一考试B卷 | 100分】5键键盘(C++ Java JavaScript Python)

    华为OD统一考试A卷+B卷 新题库说明 2023年5月份,华为官方已经将的 2022/0223Q(1/2/3/4)统一修改为OD统一考试(A卷)和OD统一考试(B卷). 你收到的链接上面会标注A卷还是 ...

  6. 87键键盘实现小键盘数字/键盘改建软件

    由于本人用的是87键键盘,缺失小键盘,有时玩游戏又需要小键盘,买个外接的小键盘又麻烦,所以百度找了一个改键软件,经过火绒检查无毒无害,如下>>>>>>>> ...

  7. 华为OD机试题 - 五键键盘(JavaScript)| 含思路

    最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单 华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典 [华为OD机试]全流程解析+经验分享,题型分 ...

  8. 华为OD机试 - 5键键盘

    题目描述 有一个特殊的5键键盘,上面有a,ctrl-c,ctrl-x,ctrl-v,ctrl-a五个键. a键在屏幕上输出一个字母a: ctrl-c将当前选择的字母复制到剪贴板: ctrl-x将当前选 ...

  9. 【华为机试真题 JAVA】5键键盘的输出-100

    题目描述 有一个特殊的5键键盘,上面有a,ctrl-c,ctrl-x,ctrl-v,ctrl-a五个键.a键在屏幕上输出一个字母a:ctrl-c将当前选择的字母复制到剪贴板:ctrl-x将当前选择的字 ...

最新文章

  1. OpenFeign服务接口调用
  2. linux内存管理 之 内存节点和内存分区(Zone)
  3. 排序中减治法算法伪代码_【算法与数据结构】伪代码与流程图
  4. 顺时针或逆时针旋转180度等于先作一个水平镜像,再作一个垂直镜像
  5. #CSS# 初识CSS
  6. Oracle Class4. 数据库对象(同义词,序列,视图,索引,簇)
  7. 英伟达赚钱能力创历史新高,老黄:GPU供不应求我也很急
  8. 2017百度之星资格赛题解(1003、1004)
  9. 从应用工程师的角度再谈车载 Android 系统
  10. 第3章-线性概率模型(1)-logistics/probit模型
  11. Unity报错之【发布UWP显示“Could not find any supported UWP SDK installations”】
  12. 名帖299 王铎 行书《书法册页李贺诗四首》
  13. html怎么实现计算bmi,利用Javascript实现BMI计算器
  14. 计算机毕业设计SSM_旅游系统【附源码数据库】
  15. android 阿拉伯语符号,阿拉伯文符号
  16. Nginx配置支持mp4视频流播放,超简单
  17. Eth-trunk :LACP模式链路聚合实战
  18. 重装系统后开机黑屏显示cannot load file怎么办
  19. 计算机网络局域网的组建实验报告,《计算机网络》局域网的组建与测试实验报告...
  20. stm32f1_MCP41010_正相放大器

热门文章

  1. HNCU 1741: 算法3-2:行编辑程序
  2. 331. Verify Preorder Serialization of a Binary Tree
  3. 判断字典中指定key是否存在
  4. 索引中丢失 IN 或 OUT 参数
  5. FPGA Design's Tips
  6. Day11多态部分-3
  7. 计算1-100之间 所有能被3 不能被 5整除的数 的 个数,每行打印 5 个
  8. 415. Add Strings 字符串相加
  9. 152. 乘积最大子数组
  10. 1035:等差数列末项计算