mcfx's blog - 高精度
/category/gjd/
-
BZOJ 2656: [Zjoi2012]数列(sequence)
/archives/57/
2016-10-21T00:08:00+08:00
###Description
小白和小蓝在一起上数学课,下课后老师留了一道作业,求下面这个数列的通项公式:
![1.jpg][1]
小白作为一个数学爱好者,很快就计算出了这个数列的通项公式。于是,小白告诉小蓝自己已经做出来了,但为了防止小蓝抄作业,小白并不想把公式公布出来。于是小白为了向小蓝证明自己的确做出来了此题以达到其炫耀的目的,想出了一个绝妙的方法:即让小蓝说一个正整数N,小白则说出 的值,如果当N很大时小白仍能很快的说出正确答案,这就说明小白的确得到了公式。但这个方法有一个很大的漏洞:小蓝自己不会做,没法验证小白的答案是否正确。作为小蓝的好友,你能帮帮小蓝吗?
###Input
输入文件第一行有且只有一个正整数T,表示测试数据的组数。
第2~T+1行,每行一个非负整数N。
###Output
输出文件共包含T行。
第i行应包含一个不含多余前缀0的数,它的值应等于An(n为输入数据中第i+1行被读入的整数)
###Sample Input
3
1
3
10
###Sample Output
1
2
3
###HINT
T=1;
if(!a[len-1])len--;
}
inline void plus(const hjd &x)
{
rep(len,x.len);
for(int i=0;ibas)a[i]-=bas,a[i+1]++;
}
if(a[len])len++;
}
inline void print()
{
printf("%d",a[len-1]);
for(int i=len-2;i>=0;i--)
printf("%09d",a[i]);
printf("\n");
}
};
struct hjd_hash
{
size_t operator ()(const hjd &x)const//乱搞哈希
{
int ans=0;
for(int i=0;i
-
BZOJ 1265: [AHOI2006]斐波卡契的兔子
/archives/24/
2016-09-13T22:36:00+08:00
###Description
卡卡开始养兔子了!妈妈给他买了一对刚出生的兔子,卡卡了解到兔子的繁殖规律是这样的:才出生的一对兔子在一个月后将第一次生出一胎a对兔子,接着在出生后的二个月又将生出b对兔子,在第三个月和以后每个月都会繁殖c对兔子。(a
-
BZOJ 1089: [SCOI2003]严格n元树
/archives/17/
2016-09-08T22:30:00+08:00
###Description
如果一棵树的所有非叶节点都恰好有n个儿子,那么我们称它为严格n元树。如果该树中最底层的节点深度为d
(根的深度为0),那么我们称它为一棵深度为d的严格n元树。例如,深度为2的严格2元树有三个,如下图:
![1.jpg][1]
给出n, d,编程数出深度为d的n元树数目。
###Input
仅包含两个整数n, d(0 < n
-
BZOJ 1002: [FJOI2007]轮状病毒
/archives/3/
2016-09-07T23:02:00+08:00
###Description
轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生的。一个N轮状基由圆环上N个不同的基原子和圆心处一个核原子构成的,2个原子之间的边表示这2个原子之间的信息通道。如下图所示
![bzoj1002.p1.png][1]
N轮状病毒的产生规律是在一个N轮状基中删去若干条边,使得各原子之间有唯一的信息通道,例如共有16个不同的3轮状病毒,如下图所示
![bzoj1002.p2.png][2]
现给定n(Na/2)b=a-b;
for(int i=0;ia-b;i--)mul(i);
for(int i=2;i=0;i--)
{
if(is0&&k[i])
{
is0=false;
printf("%d",k[i]);
}
else if(!is0)
{
printf("%07d",k[i]);
}
}
}
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i