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

HDU2552 三足鼎立 【数学推理】

时间:2016-04-22 09:25:50      浏览:114580      评论:0      收藏:0      [点我收藏+]

标签:

三足鼎立

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2406    Accepted Submission(s): 1335


Problem Description
MCA山中人才网job.vhao.net辈出,洞悉外界烽火纷纷,山中各路豪杰决定出山挽救庶平易近于水火,曾以题数扫全场的威士忌,之前高数九十九的天外来客。曾以一剑铸十年的亦纷菲,沥血以誓,占据全国各个要塞(简称全国赛)遇敌杀敌,遇佛杀佛,终究击退辽军。临时平定内乱,三人地位也处于稳态。



可惜辽誓不宁愿,辽国征南大年夜将军<耶律javac++>欲找出三人地点逐一击破,如今他发明威士忌的地位s,天外来客的地位u,只是异常难探查到亦纷菲v地点何处,仅仅能知道三人满足关系:

arctan(1/s) = arctan(1/u)+arctan(1/v)

注:技巧分享(傍边0 <= x <= 1)
定义 f(s, u, v) = v*u-s*u-s*v 的值 为<三足鼎立>

<耶律javac++>想计算<三足鼎立>的值

 

Input
起首输入一个t,表示有t组数据,随着t行:
输入s, u (s <= 12^3, u <= 2^20 且 s, u, v > 0)
且s,u,v均为实数
 

Output
输入 v*u-s*u-s*v 的值,为了简单起见,假定是小数,直接取整

比方:答案是1.7 则输入 1

 

Sample Input
1 1 2
 

Sample Output
1
 

Author
豪杰哪里出来
 

Source

借用评论辩论区大年夜牛的推导过程:
1.tan(a+b) = ( tan(a) + tan(b) ) / (1 – tan(a) * tan(b) )
2.tan( atan(x) ) = x
arctan(1/s) = arctan(1/u)+arctan(1/v)
所以得1/s = tan( arctan(1/u)+arctan(1/v) ) = (tan(arctan(1/u)) + tan(arctan(1/v)))/(1-tan(arctan(1/u))*tan(arctan(1/v))) = (1/u + 1/v) / (1 - 1/(uv))
所以解得 uv = 1 + us + vs
所以v*u-s*u-s*v恒等于1

#include <stdio.h>

int main() {
	int t;
	scanf("%d", &t);
	while(t--) {
		scanf("%*d%*d");		
		printf("1\n");
	}
	return 0;
}


HDU2552 三足鼎立 【数学推理】

标签:

原文地址:http://www.cnblogs.com/mengfanrong/p/5419953.html

(0)
(0)
   
告发
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权一切 京ICP备13008772号-2
迷上了代码!