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. beta冲刺:总结随笔

    这个作业属于哪个课程 <班级的链接> 这个作业要求在哪里 <作业要求的链接> 这个作业的目标 beta冲刺总结 作业正文 .... 其他参考文献 ... 一.预期计划 | 6. ...

  2. DVWA-Weak Session IDs(弱会话ID) 不安全的会话

    在登录服务器之后,服务器会返回给用户一个会话(session),这个会话只会存在一段时间,拥有这个会话下次登录就不用输入密码就可以登录到网站,如果返回的这个会话很弱,容易被猜解到,就很不安全,照成会话 ...

  3. Web For Pentester - SQL injections/Directory traversal

    SQL injections Example 1 典型的SQL注入 name=root' or 1=1 %23 直接执行就可以导出所有用户 查看后端的源码 观察到,我们传入入的name中,传入就成为了 ...

  4. Java笔记第十一弹

    TCP通信程序 TCP发送数据 //需要进行三次握手 import java.io.*; public class Main{ public static void main(String[] arg ...

  5. 使用 SpeechT5 进行语音合成、识别和更多功能

    我们很高兴地宣布,SpeechT5 现在可用于 Transformers (一个开源库,提供最前沿的机器学习模型实现的开源库). SpeechT5 最初见于微软亚洲研究院的这篇论文 SpeechT5: ...

  6. Python批量采集百度资讯文章,如何自定义采集日期范围

    01 引言 大家好!蜡笔小曦有个朋友是做能源相关工作的,她想要有一个工具以天为单位持续地采集百度资讯中能源相关的文章进行留存和使用. 其中有个需求点是说能够自定义采集的开始日期和结束日期,这样更加灵活 ...

  7. 千亿参数开源大模型 BLOOM 背后的技术

    假设你现在有了数据,也搞到了预算,一切就绪,准备开始训练一个大模型,一显身手了,"一朝看尽长安花"似乎近在眼前 -- 且慢!训练可不仅仅像这两个字的发音那么简单,看看 BLOOM ...

  8. 2PC(两阶段提交)【XA 与 Seata方案】

    更多内容,前往 IT-BLOG 一.概述 2PC(two phase commit protocol,2PC)即两阶段提交协议,是将整个事务流程分为两个阶段,准备阶段(Prepare phase).提 ...

  9. Kafka 实现延迟队列、死信队列、重试队列

    更多内容,访问 IT-BLOG Kafka中实现延迟队列 在发送延时消息的时候并不是先投递到要发送的真实主题(real_topic)中,而是先投递到一些 Kafka 内部的主题(delay_topic ...

  10. $\mathcal{Mathicの代码风格}$

    概述 \(#include\) 语句必须置于整个程序的开头. 不应 using namespace foo; 若有必要可以 using foo::bar; 单行字符数必须不超过\(80\). 预编译 ...