数学?计算几何?物理?这个还是很轻松的。

353: Billiard 

Time Limit(Common/Java):1000MS/10000MS     Memory Limit:65536KByte
Total Submit: 9            Accepted:4

Description

In a billiard table with horizontal side a inches and vertical side b inches, a ball is launched from the middle of the table. After s > 0 seconds the ball returns to the point from which it was launched, after having made m bounces off the vertical sides and n bounces off the horizontal sides of the table. Find the launching angle A (measured from the horizontal), which will be between 0 and 90 degrees inclusive, and the initial velocity of the ball.

Assume that the collisions with a side are elastic (no energy loss), and thus the velocity component of the ball parallel to each side remains unchanged. Also, assume the ball has a radius of zero. Remember that, unlike pool tables, billiard tables have no pockets.

Input

Input consists of a sequence of lines, each containing five nonnegative integers separated by whitespace. The five numbers are: absm, and n, respectively. All numbers are positive integers not greater than 10000.

Input is terminated by a line containing five zeroes.

Output

For each input line except the last, output a line containing two real numbers (accurate to two decimal places) separated by a single space. The first number is the measure of the angle A in degrees and the second is the velocity of the ball measured in inches per second, according to the description above.

Sample Input

100 100 1 1 1
200 100 5 3 4
201 132 48 1900 156
0 0 0 0 0

Sample Output

45.00 141.42
33.69 144.22
3.09 7967.81

Source

Waterloo June.19 1999

horizontal这个单词我还迷了一会,原来就是给你一个长a宽b的台球桌,桌子正中心有一个球,和水平方向以某个夹角,某个速度打出,在s秒后回到原来位置并且和水平方向撞了m次,垂直方向撞了n次

问那你这个夹角和速度

所以转化为物理(数学)问题

你可以把他的路径拼成一条直线,这样明显就知道直角三角形的两条边了

求速度呢,这个也简单,你算一下走过的距离好了,水平方向走了多少,竖直方向走了多少,距离就是斜边长度啊,还有时间s,所以这个题就是个简单数学问题了

#include<stdio.h>
#include<math.h>
const double PI=acos(-.);
int main()
{
double a,b,s,m,n;
while(~scanf("%lf%lf%lf%lf%lf",&a,&b,&s,&m,&n),a||b||s||m||n)
printf("%.2f %.2f\n",atan(b*n/a/m)*/PI,sqrt(b*b*n*n+a*a*m*m)/s);
return ;
}

另附上一道天梯赛和这个一样好玩的

L3-1. 非常弹的球 
刚上高一的森森为了学好物理,买了一个“非常弹”的球。虽然说是非常弹的球,其实也就是一般的弹力球而已。森森玩了一会儿弹力球后突然想到,假如他在地上用力弹球,球最远能弹到多远去呢?他不太会,你能帮他解决吗?当然为了刚学习物理的森森,我们对环境做一些简化: 
•假设森森是一个质点,以森森为原点设立坐标轴,则森森位于(0, 0)点。 
•小球质量为w/100 千克(kg),重力加速度为9.8米/秒平方(m/s2)。 
•森森在地上用力弹球的过程可简化为球从(0, 0)点以某个森森选择的角度ang (0 < ang < pi/2) 向第一象限抛出,抛出时假设动能为1000 焦耳(J)。 
•小球在空中仅受重力作用,球纵坐标为0时可视作落地,落地时损失p%动能并反弹。 
•地面可视为刚体,忽略小球形状、空气阻力及摩擦阻力等。

森森为你准备的公式:

动能公式:E = m * v^2 / 2 
牛顿力学公式:F = m * a 
重力:G = m * g 
其中: 
E - 动能,单位为“焦耳” 
m - 质量,单位为“千克” 
v - 速度,单位为“米/秒” 
a - 加速度,单位为“米/秒平方” 
g - 重力加速度

输入格式:

输入在一行中给出两个整数:1 <= w <= 1000 和 1 <= p <= 100,分别表示放大100倍的小球质量、以及损失动力的百分比p。

输出格式:

在一行输出最远的投掷距离,保留3位小数。 
输入样例:100 90

输出样例:226.757 
简单推一下,v^2=2E/m 
s=vt=2vcosθ/g*vsinθ=v^2sin2θ/g 
sin2θ最大值是1,也就是θ为45°

#include<stdio.h>
#include<cmath>
int main()
{
double w,p,e;
scanf("%lf%lf",&w,&p);
e=*/w;
p=-p/;
double s=;
while(e>0.000001)
{
s+=e/9.8;
e=e*p;
}
printf("%.3f",s);
return ;
}

TOJ 2353: Billiard的更多相关文章

  1. TOJ 2776 CD Making

    TOJ 2776题目链接http://acm.tju.edu.cn/toj/showp2776.html 这题其实就是考虑的周全性...  贡献了好几次WA, 后来想了半天才知道哪里有遗漏.最大的问题 ...

  2. [POJ 2461] Billiard

    同swustoj 11 Billiard Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 1362   Accepted: 8 ...

  3. TOJ 1702.A Knight's Journey

    2015-06-05 问题简述: 有一个 p*q 的棋盘,一个骑士(就是中国象棋里的马)想要走完所有的格子,棋盘横向是 A...Z(其中A开始 p 个),纵向是 1...q. 原题链接:http:// ...

  4. TOJ 1139.Compromise

    2015-06-03 问题简述: 大概就是输入两段文本(用小写英文字母表示),分别用#表示一段话的结束输入,输出这两个文本的最长公共子序列. 简单的LCS问题,但是输入的是一段话了,而且公共部分比较是 ...

  5. 优先队列运用 TOJ 4123 Job Scheduling

    链接:http://acm.tju.edu.cn/toj/showp4123.html 4123.   Job Scheduling Time Limit: 1.0 Seconds   Memory ...

  6. 最小生成树 TOJ 4117 Happy tree friends

    链接http://acm.tju.edu.cn/toj/showp4117.html 4117.   Happy tree friends Time Limit: 1.0 Seconds   Memo ...

  7. TOJ 4120 Zombies VS Plants

    链接:http://acm.tju.edu.cn/toj/showp4120.html 4120.   Zombies VS Plants Time Limit: 1.0 Seconds   Memo ...

  8. Codeforces Codeforces Round #484 (Div. 2) E. Billiard

    Codeforces Codeforces Round #484 (Div. 2) E. Billiard 题目连接: http://codeforces.com/contest/982/proble ...

  9. Codeforces 982E Billiard exgcd

    Billiard 枚举终点, 对于每一个终点一共有四种周期的相遇方式, 枚举一下取最小的时间. #include<bits/stdc++.h> #define LL long long # ...

随机推荐

  1. 【持续更新】JS 时间与日期

    JS 的日期时间在项目中是必定会用到的,所以必须掌握. UTC 与 GMT 背景 十七世纪,格林威治皇家天文台为了海上霸权的扩张计画而进行天体观测.1675年旧皇家观测所(Old Royal Obse ...

  2. nginx实现防盗链

    有时候在浏览网页的时候,会遇到某些文件(图片等)无法访问的情况,这是因为图片的所有方做了防盗链机制 了解防盗链之前先了解下http referer这个属性,http referer是请求头中的一部分, ...

  3. (转)ASIC设计中各个阶段需要注意的问题——节选

    ASIC 的复杂性不断提高,同时工艺在不断地改进,如何在较短的时间内开发一个稳定的可重用的ASIC芯片的设计,并且一次性流片成功,这需要一个成熟的ASIC 的设计方法和开发流程.本文结合NCveril ...

  4. nagios的一些东西

    make install 用来安装nagios的主程序,cgi和html文件 make install-init 在/etc/rc.d/init.d目录下创建nagios启动脚本 make insta ...

  5. Exoplanet: The hunt is on

    原文 How many planets are out there? Today scientists believe that planets could outnumber the stars.F ...

  6. myeclipse报错MA

    以下问题萌新问了我很多次了,无奈写个随笔.之后问的我都在这个随笔里补充. 断电/自动关机导致的问题: Could not open the editor: the file does not exis ...

  7. fun下载内容批量收集

    1.download title and url #!/usr/bin/env python #-*- coding:utf-8 -*- import re, urllib2,threading de ...

  8. Fedora19添加和设置YUM源

    Fedora19添加和设置YUM源添加yum源前先安装fastestmirror/downloadonly插件和axelget插件: 1.安装fastestmirror/downloadonly插件 ...

  9. 原生JS forEach()和map()遍历,jQuery$.each()和$.map()遍历

    一.原生JS forEach()和map()遍历 共同点: 1.都是循环遍历数组中的每一项. 2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项item,当前 ...

  10. Linux命令权限 用户权限 组权限 文件、目录权限

    Linux命令的格式是: 命令+选项+参数 命令是必须存在的,选项和参数可以不必存在,不写的情况是有默认的参数 Linux 一切皆文件 对于文件而言,只需要对文件进行读写就可以实现对文件内容内容的增删 ...