ACM--数学几何--圆环的转动问题--内蒙古14年省赛

1115: Problem E 圆环的转动问题

时间限制: 1 Sec  内存限制: 128 MB

提交: 58  解决: 6

[提交][状态][讨论版]

题目描述

  已知圆环有如下特性: 1.一个转动着的圆环会带动与其相切的圆环同时转动。 2.两个相切圆环在切点处不会发生滑动。 开始时,平面上有两个静止的圆环(输入数据保证两个圆不会相交或重合)。 后加一外力,使得第一个圆环以角速度W匀速转动。   求此时第二个圆环的角速度。

输入

  输入包含多组数据。 对于每组数据: 第一行有两个整数 : X1,Y1 , R1(第一个圆环的坐标及半径) 第二行有两个整数 : X2,Y2 , R2(第二个圆环的坐标及半径) 第三行有一个整数 : W ( 第一个圆环的角速度 ,负数表示反方向转动 ) X1,Y1,X2,Y2为整数且范围在[0,10^8]内 R1,R2为整数且 0 < R1,R2 < 10^8 W为整数 且 -10^8 < W < 10^8

输出

  请输出第二个圆环的角速度,若不是整数以最简分数形式输出(参见样例)。   每组数据输出一行。

样例输入

0 0 1
2 0 1
-1
0 0 3
5 0 2
1


样例输出

1
-3/2


提示

主要有三种情况:相离:圆心之间的距离大于两个半径之和的距离(小于两个半径之差)

                              外切:圆心之间的距离==两个半径之和的距离  (w2的方向和w1的方向相反)

                              内切:圆心之间的距离==两个半径之差的距离   (w2的方向和w1的方向相同)

还有就是要考虑输出形式的问题:如果可以整除就直接输出;

否则就按最简分数形式输出,(求他们之间的最大公约数,然后再输出)

#include <cstdio>
#include <string>
#include <iostream>
#include <cmath>
typedef long long ll;
using namespace std;
/**
  求最大公约数
*/
ll gcd( ll a,ll b) {
    ll r;
    while(b!=0){
        r=a%b;
        a=b;
        b=r;
    }
    return a;
}
/**
  用来进行开平方
*/
ll square(ll x) {
    return x*x;
}
/**
  用来计算坐标上两个点的距离
*/
ll distance(ll x1,ll y1,ll x2,ll y2){
    return square(x1-x2)+square(y1-y2);
}
int main(){
    //第一个圆和第二个圆,角速度
    ll x1,y1,r1,x2,y2,r2,w,v1,temp;
    while(cin>>x1>>y1>>r1>>x2>>y2>>r2>>w){
        v1=w*r1;//求出线速度,两个圆相切,线速度相同
        //求出两点之间的距离
        ll dis=distance(x1,y1,x2,y2);
        if(dis>square(r1+r2) || dis<square(r1-r2) ||w==0)//相离
        {
            printf("0\n");
        }
        //外切
        else if(dis==square(r1+r2)){
            if(w>0) printf("-");
            if(v1%r2==0) printf("%lld\n",(ll)abs(v1)/r2);
            else{
                temp=gcd((ll)abs(v1),r2);
                //除以最大公约数的目的就是获得最简分式
                printf("%lld/%lld\n",(ll)abs(v1)/temp,r2/temp);
            }
        }
        //内切
        else if(dis==square(r1-r2)){
            if(w<0) printf("-");
            if(v1%r2==0) printf("%lld\n",(ll)abs(v1)/r2);
            else{
                temp=gcd((ll)abs(v1),r2);
                //除以最大公约数的目的就是获得最简分式
                printf("%lld/%lld\n",(ll)abs(v1)/temp,r2/temp);
            }
        }
    }
    return 0;
}

参考博客:http://blog.csdn.net/whjkm/article/details/40452833

时间: 2024-08-29 13:08:28

ACM--数学几何--圆环的转动问题--内蒙古14年省赛的相关文章

Problem G 宝石合成 (内蒙古14年省赛)

1117: Problem G 宝石合成 时间限制: 1 Sec  内存限制: 128 MB 提交: 18  解决: 4 [提交][状态][讨论版] 题目描述 故事人物:豆豆强 走上致富之路的豆豆强越来越有土豪范,买房买车已经提不起他的兴趣,现在玩起了魔法宝石. 这种宝石分为不同品质等级,并且3个品质等级为 i 的宝石,可以合成一个品质等级为 i+1 的宝石.更加神奇的是,不管这个宝石的品质怎么变,一个宝石永远只占一个单位的空间. 现在豆豆强需要买一个全金打造的保险柜来储存这些宝石.本来对于他这

hdu 1115 Lifting the Stone (数学几何)

Lifting the Stone Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 5203    Accepted Submission(s): 2155 Problem Description There are many secret openings in the floor which are covered by a big

ACM数学知识体系

#include<iostream> #include<string> #include<stack> using namespace std; #define n 8 stack <int *> s; int * createMaze(){//初始化迷宫 int i,j; int * a; a=new int[n*n]; for(i=0;i<n;i++){ for(j=0;j<n;j++){ *(a+n*i+j)=-1;//不设置为0的原因是超

hdu 1577 WisKey的眼神 (数学几何)

WisKey的眼神 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2059    Accepted Submission(s): 625 Problem Description WisKey的眼镜有500多度,所以眼神不大好,而且他有个习惯,就是走路喜欢看着地(不是为了拣钱哦^_^),所以大家下次碰见他的时候最好主动打下招呼,呵呵.但是

ACM 常用几何基本数学公式

ACM常用几何基本数学公式 1.   海伦公式求面积 公式描述:公式中a,b,c分别为三角形三边长,p为半周长,S为三角形的面积. 2.   矢量向量求面积 3.   点到直线的距离公式 方法一:距离公式直接求 公式描述:公式中的直线方程为Ax+By+C=0,点P的坐标为(x0,y0).但是直线方程不是够直接.推荐使用方法二. 方法二:先用海伦公式求面积然后求三角形高 4.   点到线段的距离公式[或:点到线段最近的点] 有以下四种情况: 点在线段上,距离为0: 线段是一个点,用两点公式求: 三

复旦大学数学学院转入大数据学院的14级同学对高等代数课程的评价

以下是复旦大学数学学院转入大数据学院的14级同学对本人的高等代数课程的评价. 14级  孙宇明同学 作为一名14级复旦大学数学科学学院转大数据方向的学生,我的本科前两年是在数院度过的,也因此十分幸运的选择了谢启鸿老师的高等代数课,作为我在代数方面的入门课.随着年级升高,谢老师在大一这一年教授的高代知识,在我本科,尤其是大数据这一领域的学习和应用中,发挥了越来越重要的作用,主要体现在以下两个方面: 一.扎实基础.基本的代数学是大数据研究过程中重要的知识基础(比如主成分分析.线性回归和预测.高维正态

ACM: FZU 2110 Star - 数学几何 - 水题

FZU 2110  Star Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Practice Description Overpower often go to the playground with classmates. They play and chat on the playground. One day, there are a lot of stars in the sky.

Tell me the area---hdu1798 (数学 几何)

http://acm.hdu.edu.cn/showproblem.php?pid=1798 给你两个圆求阴影部分的面积 求出两个扇形的面积减去四边形的面积 扇形的面积是度数(弧度制)*半径的平方 不能用PI 3.1415926   要用acos(-1.0); 求四边形面积就是两个三角形   用海伦公式 因为精确度比较高   所以就不能用PI 3.1415926 #include <iostream> #include <cstring> #include <algorith

ACM数学(转)

从放暑假前周sir给我讲了一个用polya计数法和burnside定理做的题目(pku2409)后,突然觉得组合数学挺有意思,然后从那时起到现在几乎都在做这类的题目. 做到现在感觉这类题目的一些基本知识点都差不多有所了解了,水题也刷了不少,但还有很多难题自己实在是做不动,所以准备把这类题目先放一放,然后把前段时间做的水题整理一下(供以后的初学者参考,大牛就不要看了哈,都是水题).剩下的比较难的题目就慢慢来吧,以后做出来再不上,这个小结会不断地更新.也希望大家有好的题目可以推荐一下,分享一下哈.