[CSP-S模拟测试]:666(模拟)
题目描述
不忘初心。
小$\pi$假期在家无聊,打开了某弹幕直播网站。
突然,有一个精彩的镜头。
小$\pi$看到了满屏的$6$,其中,有$666$、也有$666666$、也有$6666666666...$
小$\pi$也想发个弹幕,他打算发$n$个$6$。
然而当他按下第一个$6$时,键盘上$6$的键坏了。
这时,弹幕框里只有$1$个$6$。
键盘坏了什么的不要紧,先把弹幕发了才是正事。
于是小$\pi$打算用复制粘贴这类操作来生成这$n$个$6$。
具体的说,小$\pi$电脑的操作系统有唯一的一块剪贴板,初始为空,现在小
$\pi$一共有三种操作:
第$1$种操作,全选然后复制。这样会把剪贴板里的内容设置为当前弹幕框内内容。
第$2$种操作,粘贴。会把剪贴板中的内容连接到弹幕框现有的内容后面。
第$3$种操作,$backspace$。会把在当前弹幕框中删除一个$6$。
小$\pi$很好奇现在生成想要的$n$个$6$至少需要多少次操作,来找到了学信息学竞赛的你。
注意本题时间限制
输入格式
一行一个整数$n$。
输出格式
一行一个整数$ans$,表示最少操作次数。
样例
样例输入1:
0
样例输出1:
1
样例输入2:
3
样例输出2:
3
数据范围与提示
其中$6\%$的数据,$n=2^k$,$k$为正整数。
其中$24\%$的数据,$n\leqslant 1,000$。
其中$20\%$的数据,内存扩充至$768MB$。
其中$20\%$的数据,时间扩充到$3s$。
其中$30\%$的数据,无特殊限制。
所有数据存在一种划分方法,使得上述范围两两没有交集。
对于$100\%$的数据,$0\leqslant n\leqslant 1,000,000$。
题解
模拟全过程。
设$f[i]$表示$i$个$6$的步数,初始时将其都付成没有访问过,$f[1]=0$。
然后每次暴力扫,用现在有的更新即可。
因为最多会走$48$步,所以时间复杂度是对的。
时间复杂度:$\Theta(48\times n)$。
期望得分:$100$分。
实际得分:$100$分。
代码时刻
#include<bits/stdc++.h>
int n,dp[1000100],bs;
int main()
{
scanf("%d",&n);
memset(dp,-1,sizeof(dp));
dp[1]=0;int now=n+50;
while(dp[n]==-1)
{
bs++;
for(register int i=1;i<=now;i++)
{
if(dp[i]==-1)continue;
register int flag=i*(bs-dp[i]);
if(flag<=now&&dp[i]<bs&&dp[flag]==-1)dp[flag]=bs;
if(dp[i-1]==-1)dp[i-1]=dp[i]+1;
}
}
printf("%d",dp[n]);
return 0;
}
rp++
[CSP-S模拟测试]:666(模拟)的更多相关文章
- 模拟测试—moq:简单一两句
在Xunit的基础上,说话模拟测试. 假如我们有这样一个控制器里面有这样一个方法,如图 我们在对Bar测试得时候,如果测试未通过,错误有可能来至于Bar,也有可能错误来至于serverde Foo方法 ...
- csp-s模拟测试89
csp-s模拟测试89 $T1$想了一会儿没什么思路,一看$T2$ $1e18$当场自闭打完暴力就弃了,$T3$看完题感觉要求$lca$和$dep$,手玩了一下样例发现$lca$很显然,$dep$貌 ...
- Android单元测试与模拟测试详解
测试与基本规范 为什么需要测试? 为了稳定性,能够明确的了解是否正确的完成开发. 更加易于维护,能够在修改代码后保证功能不被破坏. 集成一些工具,规范开发规范,使得代码更加稳定( 如通过 phabri ...
- [开源]微信在线信息模拟测试工具(基于Senparc.Weixin.MP开发)
目前为止似乎还没有看到过Web版的普通消息测试工具(除了官方针对高级接口的),现有的一些桌面版的几个测试工具也都是使用XML直接请求,非常不友好,我们来尝试做一个“面向对象”操作的测试工具. 测试工具 ...
- 安装nginx python uwsgi环境 以及模拟测试
uwsgi帮助文档: http://uwsgi-docs-cn.readthedocs.io/zh_CN/latest/WSGIquickstart.html http://uwsgi-docs.re ...
- 利用Python中的mock库对Python代码进行模拟测试
这篇文章主要介绍了利用Python中的mock库对Python代码进行模拟测试,mock库自从Python3.3依赖成为了Python的内置库,本文也等于介绍了该库的用法,需要的朋友可以参考下 ...
- 转 C#实现PID控制的模拟测试和曲线绘图
C#实现PID控制的模拟测试和曲线绘图 本文分两部分,一部分是讲PID算法的实现,另一部分是讲如何用动态的曲线绘制出PID运算的结果. 首先,PID算法的理论模型请参考自动控制理论,最早出现的是模 ...
- Mockito:一个强大的用于Java开发的模拟测试框架
https://blog.csdn.net/zhoudaxia/article/details/33056093 介绍 本文将介绍模拟测试框架Mockito的一些基础概念, 介绍该框架的优点,讲解应用 ...
- NOIP模拟测试1(2017081501)
好,今天是cgg第一次举行模拟测试,希望各位支持. 时间限制:2小时 题目链接: 题目一:水得都没名字了 题目二:车站 题目三:选数 不要觉得2小时太少,我的题目很良心,都很简单. 答案可以在模拟测试 ...
随机推荐
- npm切换淘宝镜像源
npm 切换到淘宝源地址默认的npm下载地址:http://www.npmjs.org/淘宝npm镜像的地址:https://npm.taobao.org/ 临时使用淘宝源npm --registry ...
- 工具使用——使用XShell连接linux系统
1.首先到官网取下载一个XShell安装包,根据提示安装成功. 2.打开软件,点击新建连接 3.在新建连接页面输入,主机名称.主机地址.端口号,点击确定按钮. 4.在弹出的会话窗口中,选中我们刚刚创建 ...
- 01.LNMP架构-Nginx源码包编译部署详细步骤
操作系统:CentOS_Server_7.5_x64_1804.iso 部署组件:Pcre+Zlib+Openssl+Nginx 操作步骤: 一.创建目录 [root@localhost ~]# mk ...
- Linux之RedHat7如何更换yum源
目前,我们常见的系统大概就是Windows.Linux和Mac OS了.Windows系统应该是大部分人最早开始接触的系统,毕竟Windows系统使用起来相当方便,只需要点点鼠标,外加会简单的打字,一 ...
- 014-Zabbix的自动发现
Zabbix自动发现是通过(1)网络扫描或(2)代理主动发现实现监控.本文主要介绍网络扫描的发现方式,并深入介绍底层监控项的主动发现功能. 网络发现(Discovery) 对于网络发现最需要理解的就是 ...
- SSH整合——登录模块
1.导包——参照我的GitHub Hibernate hibernate/lib/required hibernate/lib/jpa 数据库驱动 Struts2 struts-blank.war/W ...
- Saving Tang Monk II HihoCoder - 1828 2018北京赛站网络赛A题
<Journey to the West>(also <Monkey>) is one of the Four Great Classical Novels of Chines ...
- 关于AP如何获取station的rssi
最近在研究一个问题:如何通过AP来获取station的rssi. 具体可以拆分为以下三种情况: 1.首先station如果已经连接到AP上,这种情况很容易就能够得到station的RSSI.这里就不讨 ...
- oracle pl/sql 程序设计 历史笔记整理
20131016 周三 oracle pl/sql 程序设计 第2章 创建并运行pl/sql代码 sqlplus yjkhecc/yjkhecc@10.85.23.92:1521/orcl 在java ...
- LAMP 系统性能调优之内核调优措施
LAMP 系统性能调优之内核调优措施 2011-03-18 11:21 Sean A. Walberg 网络转载 字号:T | T 在对系统的 Apache.PHP 和 MySQL 组件进行调优之前, ...