HDU2552 三足鼎立 【数学推理】

三足鼎立

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山中人才辈出,洞悉外界战火纷纷,山中各路豪杰决定出山解救百姓于水火,曾以题数扫全场的威士忌,以前高数九十九的天外来客。曾以一剑铸十年的亦纷菲,歃血为盟,盘踞全国各个要塞(简称全国赛)遇敌杀敌,遇佛杀佛,最终击退辽军。临时平定外患,三人位置也处于稳态。

可惜辽誓不甘心,辽国征南大将军<耶律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

field=problem&key=2008%A1%B0%E7%CD%B7%D7%CF%C2%C9%B3%D0%A3%D4%B0%CE%C4%BB%AF%BB%EE%B6%AF%D4%C2%A1%B1%D6%AE%B4%F3%D1%A7%C9%FA%B3%CC%D0%F2%C9%E8%BC%C6%BE%BA%C8%FC%F4%DF%D0%C2%C9%FA%D7%A8%B3%A1&source=1&searchmode=source">2008“缤纷下沙校园文化活动月”之大学生程序设计竞赛暨新生专场

借用讨论区大牛的推导过程:

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;
}
时间: 2024-12-20 14:14:14

HDU2552 三足鼎立 【数学推理】的相关文章

Codeforces Round #224 (Div. 2) B 数学推理

挺有意思的一道题目,一开始发现了循环节,做了一下,发现许多小地方要补,比较繁琐,做了几个小时的无用功吧,但是循环节肯定可以只是我写搓了,后来又推了公式,发现可以的 首先当b<x的时候,c--,a--那么对于 a,c来说他们之间的差并没有减小,所以真正起到作用的是b>=x的时候,这个时候只有c--,但是答案要求的 是多少次,在b<x的时候 是要经过一定次数的  w-(x - b)来重新使得b>=x,所以第二部分对答案有影响,但是 设方程的话 就不需要多设一个未知数,因为 第一部分肯定

数学推理

1. 熟记各种数字的运算关系: (1)平方关系: 2-4,3-9,4-16,5-25,6-36,7-49,8-64,9-81,10-100,11-121,12-144,13-169,14-196,15-225,16-256,17-289,18-324,19-361,20-400(2)立方关系:   2-8,3-27,4-64,5-125,6-216,7-343,8-512,9-729,10-100 2. 和差关系:从第三项起,每一项都是前两项之和或差等 3. 乘除关系: 4. 双重数列 (当数字

SGU 495 Kids and Prizes 概率DP 或 数学推理

题目链接:http://acm.sgu.ru/problem.php?contest=0&problem=495 有n个箱子 m个人 有两个思考的角度 1.从箱子的角度 对于一个箱子来说 不被选中的概率是((n-1)/n)^m 所以被选中的概率是(1 - ((n-1)/n)^m) 箱子之间是互相独立的 所以总期望是:n * (1 - ((n-1)/n)^m) [我是算样例然后无意中发现的规律 再证明] 2.从人的角度 从题目中看 人是one by one进去选的 所以可以看作有先后顺序 考虑动态

hdu 5399(数学推理)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5399: 题意: 给你m个函数f1,f2,?,fm:{1,2,?,n}→{1,2,?,n}(即所有的x∈{1,2,?,n},对应的f(x)∈{1,2,?,n}),已知其中一部分函数的函数值,问你有多少种不同的组合使得所有的i(1≤i≤n),满足f1(f2(?fm(i)))=i 对于函数集f1,f2,?,fm and g1,g2,?,gm,当且仅当存在一个i(1≤i≤m),j(1≤j≤n),fi(j)≠

HDU2552 三足鼎立

思路: #include<cmath> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; int main(void) { int t; scanf("%d",&t); while(t--) { int s,u; scanf("%d%d",&s,&

Python之数学题目练习

首先,下面的题目来自我的大学同学的分享,他用数学证明,我用编程计算机发现了答案. 他的数学推理: 然后下面是我的Python代码: #coding=utf-8 # 井的高度 well_hegith = 12 print ('井的高度是%ld'%(well_hegith)) # 白天 def daytime(allHeight): allHeight = allHeight + 5 if allHeight>well_hegith: allHeight = -1 else: allHeight =

人工智能人才争抢白热化?学好数学才能C位出道

近代数字重要奠基人之一的德国数学家高斯曾说:"数学是科学的'皇后'."在"大数据"和"人工智能"的浪潮中,算法是核心,而数学.统计学.概率论与算法息息相关. 线性代数:如何将研究对象形式化? 事实上,线性代数不仅仅是人工智能的基础,更是现代数学和以现代数学作为主要分析方法的众多学科的基础.从量子力学到图像处理都离不开向量和矩阵的使用.而在向量和矩阵背后,线性代数的核心意义在于提供了?种看待世界的抽象视角:万事万物都可以被抽象成某些特征的组合,并在

人工智能之梦

作者:张江 制造出能够像人类一样思考的机器是科学家们最伟大的梦想之中的一个.用智慧的大脑解读智慧必将成为科学发展的终极. 而验证这样的解读的最有效手段,莫过于再造一个智慧大脑--人工智能(Artificial Intelligence,AI). 人们对人工智能的了解恐怕主要来自于好莱坞的科幻片. 这些荧幕上的机器(见图1-1)要么杀人如麻.如<终结者><黑客帝国>.要么小巧可爱,如<机器人瓦利>.要么多愁善感,如<人工智能>:还有一些则大音希声.大象无形.如

linux中fork()函数详解

 一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事.    一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间.然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同.相当于克隆了一个自己. 我们来看一个例子: [cpp] view plain copy /* *  f