设为首页 加入收藏

TOP

BNUOJ34976数细菌
2015-07-20 17:33:12 来源: 作者: 【 】 浏览:2
Tags:BNUOJ34976 细菌

数细菌

1000ms 65536KB Special Judge 64-bit integer IO format: %lld Java class name: Main Prev Submit Status Statistics Discuss Next Font Size:

小明发现了一种细菌,这种细菌会在分裂后的第2天重新分裂为3个细菌,即如果第一天有1个新分裂出来的细菌,则第2天还是有1个细菌,第3天会有3个新分裂出来的细菌,在第4天还是3个细菌,第5天会有9个细菌…已知培养皿里有若干这种细菌,第1天有a个细菌,第2天有b个细菌。小明想知道第n天时培养皿里会有多少个细菌。结果(ans)可能很大,只用输出log10(ans)即可。

Input

输入的第一行为一个整数T(T≤1000)表示数据组数。

每组数据一行三个数依次为a, b, n(1≤a,b,n≤1018)。

Output

对于每组数据,输出一个浮点数表示结果,误差在1e-6以内即可。

Sample Input

1
1 3 3

Sample Output

0.4771212547

Source

第十二届北京师范大学程序设计竞赛决赛

Author

temperlsyer
#include
  
   
#include
   
     int main() { int t; long long k1,k2,n,a,b; scanf("%d",&t); while(t--) { scanf("%lld%lld%lld",&a,&b,&n); long long ta=a,tb=b,mm; a=(tb-ta)/2;//第一天里的己经分裂后的第1天细胞数 b=ta-a;//第一天里的新生细胞数 k1=n/2; k2=(n-1)/2; if(k1==k2)mm=1;else mm=3; if(n>=3) printf("%.10lf\n",k2*log10(3.0)+log10((double)(a*mm+b)));//log里面的相乘等于相加 else if(n==1) printf("%.10lf\n",log10((double)(ta*1.0))); else if(n==2) printf("%.10lf\n",log10((double)(tb*1.0))); } } 
   
  


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇poj 1322 Chocolate (概率dp) 下一篇NYOJ 145 聪明的小珂

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·JAVA现在的就业环境 (2025-12-26 01:19:24)
·最好的java反编译工 (2025-12-26 01:19:21)
·预测一下2025年Java (2025-12-26 01:19:19)
·Libevent C++ 高并发 (2025-12-26 00:49:30)
·C++ dll 设计接口时 (2025-12-26 00:49:28)