轻舟过
[编程题]小朋友玩皮球

本帖最后由 轻舟过 于 2012-7-4 20:28 编辑

原题在这里http://codeforces.com/problemset/problem/203/D

如果做出来可以去提交

小朋友站在(a/2, m, 0)的位置,以(vx, vy, xz)的速度扔出一个球,他的两边是墙壁(ZOY平面,过(a, 0, b)与ZOY平行的平面),上面和下面是天花板(过(0, 0, b)与XOY平行的平面)和地板(XOY平面),球接触到天花板、地板、墙壁都会发生弹性碰撞,能量守恒,球可以忽略大小看成质点,不计重力。问第一次与XOZ平面(墙)的碰撞点是什么?

输入:

第一行为a, b, m三个整数 (1 ≤ a, b, m ≤ 100)

第二行为vx, vy, vz三个整数(|vx|, |vy|, |vz| ≤ 100, vy < 0, vz ≥ 0)

输出:

输出碰撞点的坐标(x0, 0, z0)中的x0和z0,与答案相差不超过1e-6的才会被认为是正确答案。

样例输入1:

7 2 11

3 -11 2

样例输出1:

6.5000000000 2.0000000000

样例输入2:

7 2 11

4 -3 3

样例输出2:

4.1666666667 1.0000000000

轻舟过
面瘫大明神
展开Biu

面瘫大明神 发表于 2012-7-5 13:28

AC了

@@32!!

[查看全文]
面瘫大明神
乃要不要去交一下
展开Biu

轻舟过 发表于 2012-7-5 13:22

乃要不要去交一下,不过要先注册

http://codeforces.com/problemset/problem/203/D

#7034!AC了

[查看全文]
轻舟过
面瘫大明神
展开Biu

面瘫大明神 发表于 2012-7-5 10:05

把空间镜像延拓一下就行脑补lv5

[mw_shl_code=c,true]#include

乃要不要去交一下,不过要先注册

http://codeforces.com/problemset/problem/203/D

[查看全文]
面瘫大明神
把空间镜像延拓一下就行
展开Biu

把空间镜像延拓一下就行#7134!脑补lv5

[mw_shl_code=c,true]#include <stdio.h>

int main() {

int a, b, m, vx, vy, vz;

double x0, z0, time;

scanf("%d %d %d", &a, &b, &m);

scanf("%d %d %d", &vx, &vy, &vz);

time = - (double) m / vy;

x0 = (double) a / 2 + vx * time;

x0 = x0 > 0 ? x0 : -x0;

z0 = vz * time;

while (x0 >= 2 * a)

x0 -= 2 * a;

while (z0 >= 2 * b)

z0 -= 2 * b;

x0 = x0 > a ? 2 * a - x0 : x0;

z0 = z0 > b ? 2 * b - z0 : z0;

printf("%.10f %.10f\n", x0, z0);

return 0;

}

[/mw_shl_code]

[查看全文]
轻舟过
好久没用
展开Biu

秋声赋 发表于 2012-7-4 21:57

好久没用C++了

写个C++的....

[mw_shl_code=cpp,true]#include "stdafx.h"

高亮果然蛋疼,刚刚缩进好像出问题了

[查看全文]
轻舟过
到时有时间整理发个
展开Biu

1Ive1 发表于 2012-7-4 21:54

好吧,到时有时间整理发个~~

嗯,有时间我也可以介绍下计算机里的几个学科

[查看全文]
秋声赋
好久没用
展开Biu

好久没用C++了

写个C++的....

[mw_shl_code=cpp,true]#include "stdafx.h"

#include *本站禁止HTML标签噢*

#include "Math.h"

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

double a,b,m,x,y,z;

cin >> a >> b >> m >> x >> y >> z;

double time = abs(m) / abs(y);

double xt = abs(time * x / (a / 2));

int xit = (int)xt;

double xdt = (xt - xit) * (a / 2);

double dx = 0;

switch ((int)xt % 4)

{

case 0: dx = xdt; break;

case 1: dx = a / 2 - xdt; break;

case 2: dx = 0 - xdt; break;

case 3: dx = 0 - (a / 2 - xdt); break;

}

dx += a / 2;

double zt = abs(time * z / b);

int zit = (int)zt;

double zdt = (zt - zit) * b;

double dz = 0;

switch ((int)zt % 2)

{

case 0: dz = zdt; break;

case 1: dz = b - zdt; break;

}

cout<<dx<<dz<<endl;

cin>>x;

return 0;

}[/mw_shl_code]

[查看全文]
1Ive1
之前倒是有个
展开Biu

轻舟过 发表于 2012-7-4 21:54

之前倒是有个“作为学长学姐的爱の忠告”的活动的,不过现在貌似结束了

发水区或者I'm geek!? ...

好吧,到时有时间整理发个~~

[查看全文]