1.问题描述:

http://poj.org/problem?id=1003

2.解题思路:

最直观的的想法是看能不能够直接求出一个通项式,然后直接算就好了, 但是这样好水的样子,而且也不知道这个通项式能否求出且精度如何?

题目中提到输入介于0.01 和5.20之间,可以确定的是最后求出来的卡片数肯定介于1-300之间,因此可以预先求出1-300张卡片分别垒起来可以达到的overhang长度。

然后用二分搜索来做。具体的代码如下:

/*
    author: obalama
    date: 2013.07.24
    email: areslipan@163.com
*/
#include <iostream>
#include <vector>
#include <iterator>
 
using namespace std;
 
int main()
{
    /*preprocessing*/
    double table[288];
 
    for(int i = 0;i<288; ++i)
    {
        if(i==0)table[i] = 1/2.0;
        else table[i] = table[i-1] + 1.0/(i+2);
    }
    
    vector<int> result;
 
    double cur;
    cin>> cur;
    while(cur-0>0.00001)
    {
        int head=0;
        int end = 277;
        int mid = (head + end)/2;
        while(table[mid] != cur)
        {
            if(table[mid] < cur)
            {
                head = mid +1;
            }
            else
            {
                end = mid -1;
            }
 
            if(head > end) break;
            else mid = (head + end)/2;
        }
 
        int maxNum;
        if(table[mid] >= cur)maxNum = mid +1;
        else
            maxNum = mid +2;
        result.push_back(maxNum);
        cin>> cur;
    }
 
    vector<int>::iterator iter;
    for(iter = result.begin(); iter != result.end(); ++iter)
    {
        cout<<*iter<<" card(s)"<<endl;
    }
 
    return 0;
}
 
 

转载于:https://www.cnblogs.com/obama/p/3211816.html

POJ 1003 解题报告相关推荐

  1. POJ 2159 解题报告

    一.substitution cipher (置换密码): Substitution cipher changes all occurrences of each letter to some oth ...

  2. POJ 3250 解题报告 Bad Hair Day (单调栈)

    传送门:http://poj.org/problem?id=3250 这题--水题啊,单调栈可解. 上一波C艹实现 #include <iostream> #include <cst ...

  3. poj 2262 解题报告

    这道题是给一个偶数,然后找出两个素数的a.b和等于这个偶数,如果有多对的话就输出一个a-b最大的组结果.这道题很简单以前AC过,今天我改了一些判断一个数是否是素数的那个方法,但是没想到时间还是和以前的 ...

  4. POJ 1679 解题报告

    这道题是判断最小生成树是否唯一. 方法之一(也是显而易见正确的方法)是求次小生成树,然后看两者的值是否一样.一样则不唯一.ByVoid有对次小生成树(及次短路径)的讲解(https://www.byv ...

  5. POJ 1185 解题报告 炮兵阵地

    题目是中文的,我就不描述题意了. 题目用到的主要算法是状态压缩dp. 思路是,我们要知道n行最多的炮数,只要知道n-2行所有状态最多的炮数,就可以根据n-1行和n行最多可行的状态算出.也就是说,n-2 ...

  6. POJ 2593解题报告

    题目来源 :PKU 2593 http://acm.pku.edu.cn/JudgeOnline/problem?id=2593 解法类型 :动态规划应用 作    者 :刘亚宁 题目大意: 抽取一个 ...

  7. POJ 1017解题报告

    这题看起来简单,实际上要考虑的地方不少,一不小心就可能漏掉某条件导致WA,我一次测了1000组输入输出才发现自己原来的代码里面有40组输出是错误的,然后一步步调试,终于AC了.一直WA又找不到自己错在 ...

  8. POJ 2800 垂直直方图 解题报告

    POJ 2800 垂直直方图 解题报告 编号:2800   考查点:简单计算题 思路: 用gets()读入4行数据,然后按字符统计,显示的时候有点小处理即可. 提交情况: 感觉POJ的测试数据有点骗人 ...

  9. POJ 2745 显示器 解题报告

    POJ 2745 显示器 解题报告 编号:2745   考查点:模拟 思路:抽象出来,计算器显示是7个笔画,然后建立数组表示各笔画被覆盖情况,不过这个是我看了书之后实现的,方法果真经典. 提交情况:比 ...

最新文章

  1. 区块链技术指2.1 区块链技术
  2. Spring Cloud Alibaba - 08 Ribbon 两种方式实现细粒度自定义配置控制微服务的负载均衡策略
  3. 《系统集成项目管理工程师》必背100个知识点-97信息系统生命周期
  4. Objective-C ,ios,iphone开发基础:picker控件详解与使用,(实现省市的二级联动)
  5. python文件是怎么打开_python file怎么打开
  6. 贴片铝电容识别及型号_电容器选型及其应用规范
  7. IDEA 不识别的MAVEN 项目应如何处理
  8. 安卓智能手机刷机前的准备工作
  9. 在网页中实现录音功能
  10. 【线性代数】线性代数的几何意义
  11. 采样频率和带宽的关系_示波器的带宽与采样率是什么关系
  12. V2.0 版本的 《JavaGuide面试突击版》来啦!带着它的在线阅读版本来啦!
  13. UOS系统启动盘制作
  14. 利用echarts做图表统计
  15. MindManager:将excel转成思维导图
  16. MessageBox 按钮显示英文或其他语言
  17. (美化)WordPress网站添加自定义字体
  18. 《F4+2团队项目需求改进与系统设计》
  19. DLL 导入的两种方式
  20. java 字符串转list_浅谈java 字符串,字符数组,list间的转化

热门文章

  1. JAVA-JSP内置对象之application对象获得其他信息
  2. Windows OS上安装运行Apache Kafka教程
  3. 我的NopCommerce之旅(4): 定时任务之邮件
  4. linux,下载与安装
  5. [导入]Linux下载工具利器ProZilla和ProzGUI
  6. 一文读懂人工智能的前世今生(建议收藏)
  7. 2018世界幸福指数中国排第86,这种报告是怎样做出来的?
  8. 深入源码,深度解析Java 线程池的实现原理
  9. 每周工作4天半可行吗?人社部回应:不宜在企业中广泛推行
  10. 快领!了不起的程序员专属红包封面!!