码迷,mamicode.com
首页 > 其他好文 > 详细

USTC OJ — 1011 Problem of Deck(组合数学,递推关系)

时间:2014-12-12 14:55:20      阅读:295      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   ar   color   os   sp   for   

1. 题目描述

根据题意,我们可以知道:

在桌子边上放一个尺子(长度为L),为了保持其不掉落,伸出桌面边缘最大长度为1/2L。

在上面的基础上,再累加一个尺子,为了保持其不掉落,伸出下面尺子的边缘最大长度为1/4L。

在累加一个尺子,为了保持其不掉落,伸出下面尺子的边缘最大长度为1/6L。

依次下去。。。

2. 算法设计

由上面的描述,我们可以得到递推关系

累加了n把尺子时,延伸出桌子边缘的长度为

length(0) = 0

length(n) = length(n-1) + 1/(2n) , n ≥ 1.

3. AC Code

bubuko.com,布布扣
 1 #include <stdio.h>
 2 #define N 100000
 3 double table[N]; // table[i] i张cards的时候,extend的长度
 4 
 5 void print(int n);
 6 
 7 int main()
 8 {
 9     int i, n;    
10     // take table
11     table[0] = 0;
12     for ( i = 1; i < N; i++ )
13     {
14         table[i] = table[i-1] + 1.0 / (2*i);
15     }
16 
17     printf("# Cards  Overhang\n");
18     while ( EOF != scanf("%d", &n) )
19     {
20         print(n);
21     }
22 }
23 
24 void print(int n)
25 {
26     printf("%5d     %.3lf\n", n, table[n]);
27 }
View Code

 

USTC OJ — 1011 Problem of Deck(组合数学,递推关系)

标签:style   blog   http   io   ar   color   os   sp   for   

原文地址:http://www.cnblogs.com/nuppt/p/4159642.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!