BNU Online Judge-34976-数细菌
题目链接
http://www.bnuoj.com/bnuoj/problem_show.php?pid=34976
题目分析通过a b可以设x,y
x+y=a x+3*y=b 解出x,y, x=(3*a-b)/2 y=(b-a)/2;
x=(3*a-b)/2; y=(b-a)/2;
n1=(n-1)/2; n2=n/2;
n1 n2 分别为代表3的指数
可以得出结果 s=log10(x*1.0*pow(3.0,n1)+y*1.0*pow(3.0,n2));
如果这样写的话由于a,b,n过大会ni出需要进行变换
因为n1==n2或n2-n1==1可以提出pow(3.0,n1), log10(3的n1次)可改为n1*log10(3);
那么就变成了
if(n1==n2)
{
s=n1*log10(3.0)+log10(x+y);
}
else
{
s=n1*log10(3.0)+log10(x+3*y);
}
这样就达到目的了
代码
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define ll long long
int main(void)
{
int t;
ll a,b,n,n1,n2;
ll x,y;
scanf("%d",&t);
while(t--)
{
double s=0;
scanf("%lld%lld%lld",&a,&b,&n);
x=(3*a-b)/2; y=(b-a)/2;
n1=(n-1)/2; n2=n/2;
if(n1==n2)
{
s=n1*log10(3.0)+log10(x+y);
}
else
{
s=n1*log10(3.0)+log10(x+3*y);
}
printf("%.10lf\n",s);
}
return 0;
}
BNU Online Judge-34976-数细菌的更多相关文章
- Open judge 07和为给定数
总时间限制: 1000ms 内存限制: 65536kB 传送门 类似的题传送门 描述 给出若干个整数,询问其中是否有一对数的和等于给定的数. 输入 共三行: 第一行是整数n(0 < n < ...
- 2016中国大学生程序设计竞赛(长春)-重现赛 1010Ugly Problem 回文数 模拟
Ugly Problem Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Tota ...
- BNU 2418 Ultra-QuickSort (线段树求逆序对)
题目链接:http://acm.bnu.edu.cn/bnuoj/problem_show.php?pid=2418 解题报告:就是给你n个数,然后让你求这个数列的逆序对是多少?题目中n的范围是n & ...
- 斐波那契数[XDU1049]
Problem 1049 - 斐波那契数 Time Limit: 1000MS Memory Limit: 65536KB Difficulty: Total Submit: 1673 Ac ...
- OpenJudge计算概论-细菌的战争
/*====================================================================== 细菌的战争 总时间限制: 1000ms 内存限制: 6 ...
- P2022 有趣的数
P2022 有趣的数 题目描述 让我们来考虑1到N的正整数集合.让我们把集合中的元素按照字典序排列,例如当N=11时,其顺序应该为:1,10,11,2,3,4,5,6,7,8,9. 定义K在N个数中的 ...
- Project Euler 92:Square digit chains 平方数字链
题目 Square digit chains A number chain is created by continuously adding the square of the digits in ...
- BNU OJ 33691 / LA 4817 Calculator JAVA大数
留着当个模板用,在BNU上AC,在LA上RE……可能是java的提交方式不同??? 数和运算符各开一个栈. 表达式从左到右扫一遍,将数存成大数,遇到数压在 数的栈,运算符压在 运算符的栈,每当遇到右括 ...
- bzoj 2876: [Noi2012]骑行川藏 拉格朗日数乘
2876: [Noi2012]骑行川藏 Time Limit: 20 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 1033 Solved: ...
随机推荐
- ant调用shell命令(Ubuntu)
ant中调用Makefile,使用shell中的make命令 <?xml version="1.0" encoding="utf-8" ?> < ...
- Cordova插件开发
我在网上找了很多关于Cordova插件开发的例子,都不是我想要的,我只想要,怎么调用这个生成出来的js,最终得到了最为直接又简单的方法,希望给能帮助到大家! document.addEventList ...
- Android网络开发之OkHttp--基本用法实例化各个对象
1.实例化OkHttpClient对象,OkHttpClient包含了以下属性,以及set()和get()方法.但并没有包含具体的执行方法,详情见源码. //实例化OkHttpClent对象 priv ...
- extjs 框架模板
的 <script> Ext.onReady(function(){ Ext.create('Ext.container.Viewport', { layout: 'border', it ...
- Tesseract-OCR使用记录
Tesseract是一个开源的OCR(Optical Character Recognition,光学字符识别)引擎,可以识别多种格式的图像文件并将其转换成文本,目前已支持60多种语言(包括中文). ...
- iOS下bound,center和frame
本文转发至:http://www.xuebuyuan.com/1846606.html 在写程序的时候发现,iOS下的坐标.位置很容易弄乱,特别是在不同的坐标系统中,必须完成弄明白一些概念才能做相应的 ...
- 关于Spring3报org.aopalliance.intercept.MethodInterceptor错的问题解决方法_JavaLeader_新浪博客
body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...
- Asp.net Ajax提供PageMethods调用
页面上的Javascript通过ASP.NET AJAX除了可以调用Web服务类,还可以调用网页中的静态方法. <%@ Page Language="C#" %> &l ...
- new sun.misc.BASE64Encoder()报错找不到jar包
解决方案1(推荐): 只需要在project build path中先移除JRE System Library,再添加库JRE System Library,重新编译后就一切正常了. 解决方案2: W ...
- c++读取REG_MULTI_SZ类型注册表
First: run RegQueryValueEx to get type and necessary memory size: Single byte code: DWORD type, size ...