2022-03-14:一开始屏幕上什么也没有,粘贴板里什么也没有,
你只能在键盘上做如下4种操作中的1种:
输入:在屏幕上已经显示内容的后面加一个A,
全选:把屏幕上已经显示的全部内容选中,
复制:被选中的内容复制进粘贴板,
粘贴:在屏幕上已经显示内容的后面添加粘贴板里的内容,
给定一个正数n,表示你能操作的步数,
返回n步内你能让最多多少个A显示在屏幕上。

答案2022-03-14:

可以证明:
来到i的时候,包括i在内最多有连续4次粘贴行为
不可能更多,如果有连续5次粘贴,一定就不再是最优解
假设开始时,A的数量为S,看如下的变化过程,我们称这是行为一:
开始 全选 复制(粘贴板S个A) 粘贴 粘贴 粘贴 粘贴 粘贴
S S S 2S 3S 4S 5S 6S
但是,注意看如下的行为二:
开始 全选 复制(粘贴板S个A) 粘贴 全选 复制(粘贴板2S个A) 粘贴 粘贴
S S S 2
S 2S 2S 4S 6S
行为一,经历8步,最后是6S个A
行为二,经历8步,最后是6
S个A
但是行为二在粘贴板上有2S个A,而行为一在粘贴板上有S个A
所以行为一没有行为二优
以此说明:来到i的时候,包括i在内最多有连续4次粘贴行为
那么就尝试:连续1次、连续2次、连续3次、连续4次粘贴行为即可

代码用golang编写。代码如下:

package main

import "fmt"

func main() {
ret := maxA(8)
fmt.Println(ret)
} func maxA(n int) int {
// dp[0] 1步以内的最优解
// dp[1] 2步以内的最优解
// dp[2] 3步以内的最优解
// dp[i] i+1步以内的最优解
dp := make([]int, n)
for i := 0; i < 6 && i < n; i++ {
dp[i] = i + 1
}
for i := 6; i < n; i++ {
dp[i] = getMax(getMax(dp[i-3]*2, dp[i-4]*3), getMax(dp[i-5]*4, dp[i-6]*5))
}
return dp[n-1]
} func getMax(a, b int) int {
if a > b {
return a
} else {
return b
}
}

执行结果如下:


左神java代码

2022-03-14:一开始屏幕上什么也没有,粘贴板里什么也没有, 你只能在键盘上做如下4种操作中的1种: 输入:在屏幕上已经显示内容的后面加一个A, 全选:把屏幕上已经显示的全部内容选中, 复制:被的更多相关文章

  1. jquery一个按钮全选和反选

    1.jquery实现复选框全选和反选的方式有好几种,今天遇到一个问题,只用下边的方式生效:function checkAll(){ var check=$('#check_all').is(':che ...

  2. react-native IOS TextInput长按提示显示为中文(select | selectall -> 选择 | 全选)

    根据手机系统语言(简体中文/英文),提示不同的长按效果 长按提示效果图 英文长按提示 中文长按提示 解决 1.手机系统语言为简体中文: 设置->通用->语言与地区 2.ios/项目/inf ...

  3. element-ui select组件中复选时以字符串形式显示

    我使用的element-ui的版本是1.4.13. 如上图所示,使用el-select组件,要实现可搜索.可复选.可创建条目时,展示样式是如上图所示,输入框的高度会撑开,影响页面布局,按照产品的需求, ...

  4. jquery操作全选、批量删除、加减行

    --------------------------------------------------------------------------------------- html静态页面 --- ...

  5. vue 入门 ------简单购物车功能实现(全选,数量加减,价格加减)

    简易购物车功能(无任何布局 主要是功能) 数量的加减 商品的总价钱 全选与全不选 删除(全选.价格 受影响) <script src="https://cdn.jsdelivr.net ...

  6. php--jquery操作全选、批量删除、加减行

  7. Android TextView内容过长加省略号,点击显示全部内容

    在Android TextView中有个内容过长加省略号的属性,即ellipsize,用法如下: 在xml中:android:ellipsize="end"    省略号在结尾an ...

  8. UEditor在asp.netMVC4中的使用,包括上传功能,粘贴表格不显示边框问题

    网页编程中在线编辑器的使用还是很重要的,最近研究了一下百度出的UEditor编辑器,把它结合到刚学的asp.netMVC+EF中,同时实现上传资料(包括图片,视频等)功能,下面就以一个最简单的新闻管理 ...

  9. ios在tableview里面加subview后在ip4和ip5上显示不一样的问题

    文章链接:http://quke.org/post/ios-tableview-addsubview-height.html (转载时请注明本文出处及文章链接) 我在在tableview里面加subv ...

  10. ASP.NET + MVC5 入门完整教程八 -—-- 一个完整的应用程序(上)

    https://blog.csdn.net/qq_21419015/article/details/80509513 SportsStore 1.开始创建Visual Studio 解决方案和项目这里 ...

随机推荐

  1. 微信小程序分享出去的页面再点进来,如何取值并且在新用户未授权的情况下,授权后跳到当前页面

    1.如何点击分享的页面进来,授权后跳转到当前页面 可以在授权成功后,将openid.头像.昵称入库成功之后,标记一下,及getStorageSync // 通过code获取openid getUser ...

  2. 03-Spring使用注解方式注入

    基于注解的DI注入 1.导包 环境搭建:导入aop包(spring-aop-4.1.6.RELEASE.jar) 2.创建类 3. 创建spring.xml配置文件(必须在src目录下) 该配置文件与 ...

  3. Flask CURD(增删改查)

    1.创建flask项目 2.修改配置文件: ''' config.py 保存项目配置 ''' 导入Flask模块 from flask import Flask 额外安装: 数据库操作模块 from ...

  4. 记一个jdbc创建数据库、用户操作时,创建新用户提示CREATE USER权限问题

    手写存储表数据库信息,访问链接动态数据源操作: mysql: 1.root登录服务器 进入数据库 mysql -u root -p2.创建数据库 create database shop; shop ...

  5. K8S 性能优化 - 大型集群 CIDR 配置

    前言 K8S 性能优化系列文章,本文为第三篇:Kubernetes 大型集群 CIDR 配置最佳实践. 系列文章: <K8S 性能优化 - OS sysctl 调优> <K8S 性能 ...

  6. Spring源码分析之getBean

    一.前言 spring作为JAVAEE最核心的框架,是每一个java开发者所必须掌握的,非常重要,本篇从一个简单例子入手,由浅入深的分析spring创建bean的全过程,目标在于彻底搞懂spring原 ...

  7. Gin实践

    // func New() *Engine // func Default() *Engine engine := New() engine.Use(Logger(), Recovery()) 由源代 ...

  8. sqlite3使用2

    一. 在cmd中打开SQLite 1.进入数据库 通过输入 d:cd D:\--\SQLitesqlite3 进入数据库 查看数据库的基本信息: .help 显示各种重要的SQLite点命令的列表.s ...

  9. [Windows]解决:windows连接远程桌面-出现身份验证错误,要求的函数不受支持( CredSSP加密数据库修正)[转载]

    文由 需要在本地Windows系统电脑通过远程桌面(mstsc)另一台Windows服务器,将其内的数据拷贝过来.但却发生了这样的异常 解决方案 step1 Win+R step2 打开注册表: gp ...

  10. 逍遥自在学C语言 | 位运算符&的高级用法

    前言 在上一篇文章中,我们介绍了&运算符的基础用法,本篇文章,我们将介绍& 运算符的一些高级用法. 一.人物简介 第一位闪亮登场,有请今后会一直教我们C语言的老师 -- 自在. 第二位 ...