当前位置: 首页 > news >正文

【UVA - 11636】Hello World!

真的是 Hello World

题目描述

当你第一次让计算机打印出 "Hello World!"这句话时,你感到非常高兴,不知道编程和算法的世界会变得多么复杂和有趣。
那时你对循环一无所知,所以要打印7行 “Hello World!”,你只需要 复制和粘贴几行。
如果你足够聪明,你可以编写一段代码来打印 “Hello World! 世界!” 7次的代码,只需使用3个粘贴命令。
请注意,我们并不关心 所需的复制命令的数量。
一个打印 "Hello World!"的简单程序如图1所示。
通过 通过复制单个打印语句并粘贴,我们得到一个打印两行 "Hello World!"的程序。然后复制这两条打印语句并粘贴,我们得到一个打印出四行 "Hello World!"的程序。然后复制这四个语句中的三个并粘贴,我们可以得到一个 程序,可以打印出7行 “Hello World!”(图4)。
所以总共需要三个粘贴命令 当然,粘贴后不允许删除任何一行。

鉴于你需要打印的 "Hello 世界!"的行数,你必须找出所需的最少粘贴次数。图1所示的源程序,找出制作该程序所需的最少粘贴次数。

输入:

每组数据一个数n(n<=1e8)
多组测试数据以n<0结束输入

输出:

输出Case i:最少操作次数

输入样例

2
5
-1

输入样例

Case 1: 1
Case 2: 3

分析

这道题目一定是一道贪心算法的题目。
因为作者使用了 AI 提前剧透 因为这道题目的 nnn 的范围达到了 100001000010000,应该就是贪心了。

思路

首先既然是贪心,我们要考虑最多的次数。
每次都把上一次的所有的 可以复制到的 全部复制了
第一次是 202^020 第二次是 212^121nnn 次是 2n−12^{n-1}2n1

全部相加得:2n−12^n-12n1

简单证明一下:
20+21+22+...+2n−1=2n2^0+2^1+2^2+...+2^{n-1}=2^n20+21+22+...+2n1=2n
S=20+21+22+...+2n−1S=2^0+2^1+2^2+...+2^{n-1}S=20+21+22+...+2n1
那么 2S=2(20+21+22+...+2n−1)=21+22+23+...+2n2S = 2(2^0+2^1+2^2+...+2^{n-1})=2^1+2^2+2^3+...+2^n2S=2(20+21+22+...+2n1)=21+22+23+...+2n
两式相减得 2S−S=(21+22+23+...+2n)−(20+21+22+...+2n−1)2S-S=(2^1+2^2+2^3+...+2^n)-(2^0+2^1+2^2+...+2^{n-1})2SS=(21+22+23+...+2n)(20+21+22+...+2n1)
最后 S=2n−20=2n−1S=2^n-2^0=2^n-1S=2n20=2n1

证毕

代码真是太短了

#include <cstdio>
#include <cmath>signed main() {int n, count=1;while(scanf("%d", &n) == 1 && n >= 0) {printf("Case %d: %d\n",count,(int) ceil(log2(n)));count++;}return 0;
}

时间复杂度分析 & 坑点

log2 函数的时间复杂度在最差的情况为 O(log⁡n)O(\log n)O(logn)
所以这个代码的时间复杂度为 O(klog⁡n)O(k \log n)O(klogn) kkk 是测试数据的个数

注意上面代码的 n >= 0 因为有的数据的结尾不是 -1 而是别的负数

http://www.dtcms.com/a/429200.html

相关文章:

  • 新天力:定制化+创新工艺,解锁食品容器行业无限可能
  • 怎么提高网站加载速度慢邢台市教育局官网
  • 福建公司网站开发网络营销案例分析ppt
  • 网站数据库5gwordpress手机版网站
  • 电子商务网站建设技术解决方案网站建设 58同城
  • 共生伙伴还是致病元凶?——全面认识葡萄球菌属(Staphylococcus)
  • 付费网站 源码 下载链接化妆品网站建设规划书范文
  • 工信部网站登陆网易企业邮箱手机上登录不了
  • 网站建设的课程设计报告甘肃网站建设企业推荐
  • 网站设计公司怎样提高网站点击率
  • 南阳企业网站学广告设计难不难
  • 网站建设 设计 优化 维护移动论坛网站模板免费下载
  • 教人做甜点的网站东莞网络科技公司有哪些
  • 怎么编辑网页里面内容杭州百度seo代理
  • 基础算法---【双指针】
  • 做地方网站论坛赚钱广东建设厅官网查询平台
  • 杭州企业网站建设方案城阳做网站的
  • 信息公开 强化网站建设珠宝首饰网站建设
  • wordpress个人博客前台模板下载国际网站怎么做优化
  • 【多线程】竞态条件是什么?
  • 邢台推广网站建设电话培训网站方案
  • 自媒体135网站学做网站可以赚钱吗
  • 邢台企业做网站价格网站建设有哪些规章制度
  • 新建网站seo优化怎么做网络营销方式及特点
  • WordPress状态栏替换英文外链seo兼职
  • 企业网站建立模板怎么做ui界面设计案例ppt
  • 南京电商网站建设公司湘潭网站建设开发
  • 怎样做自己的手机网站三九手机网手机响应式网站模版
  • 专业企业网站建设多少钱服务网站后台任务
  • 商务网站建设一万字wordpress添加关键词