HDU2552 三足鼎立 【数学推理】
生活随笔
收集整理的這篇文章主要介紹了
HDU2552 三足鼎立 【数学推理】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
三足鼎立
Time Limit: 2000/1000 MS (Java/Others)????Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2406????Accepted Submission(s): 1335Problem 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 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; }總結
以上是生活随笔為你收集整理的HDU2552 三足鼎立 【数学推理】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ngnix服务器搭建
- 下一篇: dom4j使用总结