zoukankan      html  css  js  c++  java
  • uva11636

    题目大意:一开始有一条语句printf("Hello World! ");你可以选择复制粘贴,问要输出n行Hello World!最少要复制几次?

    分析:大水题,每次复制粘贴当前所有的语句则可以使次数最少,所以答案就是ceil(l(logn)/(log2))。

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <cmath>
     5 using namespace std;
     6 int main()
     7 {
     8     int n,Case=1;
     9     while(scanf("%d",&n)==1)
    10     {
    11         if(n<0) break;
    12         printf("Case %d: %d
    ",Case++,(int)ceil(log(n)/log(2)));
    13     }
    14     return 0;
    15 }
    View Code

    有一道题目跟这个很像:VIJOS-P1361

    Description

    有n个球,从外表上看不出差别,但有一个球比其他球重,其他N-1个球质量相等。请问:在地球上(MS废话),用天平最少称几次可以称出来?

    Input

    一个自然数N(0< N< =2^24)

    Output

    输出用天平最小的称量数m(m< 30000)

    Sample Input

    8

    Sample Output

    2
    这个题目如何产生最优?我们可以发现称一次最多可以分辨出3个球里的那个假球,称两次则是9,三次则是27,n次为3^n,所以结果就是ceil(l(logn)/(log3))。
     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <cmath>
     5 using namespace std;
     6 long long n;
     7 int main ()
     8 {
     9     while(scanf("%lld",&n)!=EOF)
    10     {
    11         printf("%d
    ",(int)ceil(log(n)/log(3)));
    12     }
    13 }
    View Code
  • 相关阅读:
    SpringFramework|@Autowired
    SpringFramework|@Required的使用
    SpringFramework|基于XML的两种自动装配
    SpringFramework|基于XML的各类集合注入
    SpringFramework|基于XML的依赖注入
    erlang vim
    svn 强制输入提交日志
    vim配置
    克隆centos6后配置网络
    git 免密
  • 原文地址:https://www.cnblogs.com/shuzy/p/3187019.html
Copyright © 2011-2022 走看看