zoukankan      html  css  js  c++  java
  • BZOJ 2048 题解

    2048: [2009国家集训队]书堆

    Time Limit: 10 Sec  Memory Limit: 259 MB
    Submit: 1076  Solved: 499
    [Submit][Status][Discuss]

    Description

    Input

    第一行正整数 N M

    Output

    一行(有换行符),L,表示水平延伸最远的整数距离 (不大于答案的最大整数)

    Sample Input

    样例
    #1
    Input: 1 100
    Output: 49

    #2
    Input: 2 100
    Output: 74

    Sample Output

    N <= 10^18
    数据保证答案 < 10^6
     
    ————————————————————————————
     
     物理题:
    从最上一本书考虑,当重心落在下一本书的边缘,由于力矩平衡,恰好不落下。
    两本书整体根据力矩平衡,重心左移m/4距离。
    两本书整体根据力矩平衡,重心左移m/6距离。
     
    两本书整体质心根据力矩平衡,重心左移m/8距离。
    于是现在题目求( m/2 + m/4 + m/6 + m/8 + ... + m/n ) ,不难发现,这道题与调和级数有关。
     
     
     根据上述公式,代码如下:
    /**************************************************************
        Problem: 2048
        User: shadowland
        Language: C++
        Result: Accepted
        Time:0 ms
        Memory:1300 kb
    ****************************************************************/
     
    #include "bits/stdc++.h"
     
    using namespace std ;
    typedef long long QAQ ;
    typedef double db ;
    const db Euler_const = 0.5772156649015328606065120900824024310421593359 ; 
    const db eps = 1e-10 ;
     
    int main ( ) {
            db tmp = 0.0000 , N , M ;
            cin >> N >> M ; 
            if ( N <= 1e4 ) for ( int i=1 ; i<=N ; ++i ) tmp += ( 1.000 / ( db ) i ) ;
            else tmp = log ( N + 1.000 ) + Euler_const ; 
            tmp *= ( M * 0.500 ) ;
            cout << ( QAQ ) ceil ( tmp - 1 ) << endl ;
            return 0 ;  
    } 
    View Code

    2016-10-29 00:56:53

     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    thinkpad--Windows8 F11一键恢复方法
    ThinkPad---Windows8更换Windows7方法
    断网问题360解决方案
    网络故障诊断指南
    重装系统指南
    题目1123:采药
    题目1019:简单计算器
    题目1012:畅通工程
    你的隐私数据真的安全吗之memset()使用分析
    高光谱图像处理深度学习方法综述(一)
  • 原文地址:https://www.cnblogs.com/shadowland/p/6009800.html
Copyright © 2011-2022 走看看