hdu Random Sequence
这道题是道规律极强的题。。。真佩服在赛场上快速找到规律的人。
d[i] a[i] res[i]
0 1.000000
Case 1: 0.500000 2.000000 1.000000
Case 2: 0.375000 2.750000 1.500000
Case 3: 0.312500 3.375000 2.000000
Case 4: 0.273438 3.921875 2.375000
Case 5: 0.246094 4.414063 2.750000
Case 6: 0.225586 4.865234 3.062500
Case 7: 0.209473 5.284180 3.375000
Case 8: 0.196381 5.676941 3.648438
Case 9: 0.185471 6.047882 3.921875
Case 10: 0.176197 6.400276 4.167969
Case 11: 0.168188 6.736652 4.414063
Case 12: 0.161180 7.059013 4.639648
Case 13: 0.154981 7.368975 4.865234
Case 14: 0.149446 7.667867 5.074707
Case 15: 0.144464 7.956796 5.284180
Case 16: 0.139950 8.236696 5.480560
Case 17: 0.135834 8.508363 5.676941
Case 18: 0.132061 8.772484 5.862411
Case 19: 0.128585 9.029655 6.047882
Case 20: 0.125371 9.280396 6.224079
易发现,偶数的res[i]=(res[i-1]+res[i+1])/2
故只要知道奇数位的值即可。抽象成序列a[i]。相邻两项做差,抽象出d[i]序列。
化为分数,相邻两项做商,发现d[i]=d[i-1]*(2*i-1)/(2*i)。
不一定要用整数来找规律,可以试试分数。或许会有意外的收获哦。
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
const int maxn=;
double a[maxn], d[maxn];
void getd()
{
d[]=0.5;
for(int i=; i<maxn; i++)
d[i]=d[i-]*(*i-)/(*i);
}
void geta()
{
a[]=1.0;
for(int i=; i<maxn; i++)
a[i]=a[i-]+*d[i];
}
int main()
{
getd();
geta();
int t, ca=, n;
scanf("%d", &t);
while(t--)
{
scanf("%d", &n);
printf("Case %d: ", ca++);
if(n&)
printf("%.6lf\n", a[n/]);
else
printf("%.6lf\n", (a[(n-)/]+a[(n+)/])*0.5);
}
return ;
}
hdu Random Sequence的更多相关文章
- HDU 3397 Sequence operation(线段树)
HDU 3397 Sequence operation 题目链接 题意:给定一个01序列,有5种操作 0 a b [a.b]区间置为0 1 a b [a,b]区间置为1 2 a b [a,b]区间0变 ...
- HDU 5919 Sequence II(主席树+逆序思想)
Sequence II Time Limit: 9000/4500 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) To ...
- hdu 5146 Sequence
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5146 Sequence Description Today we have a number sequ ...
- HDU 6395 Sequence 【矩阵快速幂 && 暴力】
任意门:http://acm.hdu.edu.cn/showproblem.php?pid=6395 Sequence Time Limit: 4000/2000 MS (Java/Others) ...
- hdu 5312 Sequence(数学推导——三角形数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5312 Sequence Time Limit: 2000/2000 MS (Java/Others) ...
- hdu 1711Number Sequence (KMP入门,子串第一次出现的位置)
Number Sequence Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- hdu 3397 Sequence operation(线段树:区间更新)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3397 题意:给你一个长度为n的0,1序列,支持下列五种操作, 操作0(0 a b):将a到b这个区间的 ...
- HDU 1141---Brackets Sequence(区间DP)
题目链接 http://poj.org/problem?id=1141 Description Let us define a regular brackets sequence in the fol ...
- hdu 1711Number Sequence
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1711 数字KMP,原来还能这么用 #include<stdio.h> ],b[]; ]; ...
随机推荐
- c++11之bind
std::bind是个c++推出的新的特性,非常有用,让你写起来率试不爽. #include <iostream> using namespace std; #include <fu ...
- 利用WinHEX,重构狂牛加密视频1.0.0.1【只适合RIFF(AVI)】
幸亏是视频部分没有进行加密 1.用 WinHEX 打开狂牛加密视频, 查找 [RIFF] 字符串 2.光标放在 RIFF的 [R]上面, 按 CTRL+SHIFT+END 3.把选择的块写入新文件 H ...
- poj 2013 Symmetric Order 解题报告
题目链接:http://poj.org/problem?id=2013 设长度非递减的字串序列为s[1]...s[n].设计递归子程序print(n),其中n为字串序号,每分析1个字串,n=n-1. ...
- 部署django应用
Autor: wangxianlong 2016/7/10 16:17:55 环境: centos 6.5 python 2.7.5 django 1.9 nginx 1.8 selinux diab ...
- 我的MySQL5.6免安装版配置过程
最近打算学习MySQL,第一步就是安装.下载到一个面安装版.解压到我的D盘的mysql目录. 弄了一个最简单的配置文件.目录中只有一个my-default.ini,基本没啥用.在网上弄了一个my.in ...
- DDL, DML不是所有SQL都是可以自动回滚的
因为DDL没有事务性,所以DDL不能回滚. 要实现自动回滚.(begin,commit,rollback),则SQL语句中只能包括DML. 这样,自动化发布就会受限规范格式. 故而,一刀切的办法是,假 ...
- DJANGO的API跨域实现
Ajax跨域请求报错:XMLHttpRequest cannot load ''. No 'Access-Control-Allow-Origin' header is present on the ...
- 图解VS2010打包全过程(转)
最近刚刚打包发布了用VS2010开发的一个收费系统,借此讲一讲打包过程,供大家参考. 首先打开已经完成的工程,如图: 下面开始制作安装程序包. 第一步:[文件]——[新建]——[项目]——安装项目. ...
- HDU 4513 吉哥系列故事——完美队形II manacher
吉哥系列故事——完美队形II Problem Description 吉哥又想出了一个新的完美队形游戏! 假设有n个人按顺序站在他的面前,他们的身高分别是h[1], h[2] ... h[n],吉哥希 ...
- XTU 1242 Yada Number 容斥
Yada Number Problem Description: Every positive integer can be expressed by multiplication of prime ...