• hdu 1713 相遇周期


    在这里插入图片描述


    思路:

    这题讲道理题目有问题,周期应该是天数除以圈数吧。。。
    本质的问题还是求两个周期的最小公倍数,如果换成整数,就很好写了,问题现在是分数,分数求最小公倍数的,
    是分子求最小公倍数,分母求最大公约数,然后就是溢出的问题,全用long long来表示。
    

    代码:

    #include<bits/stdc++.h>
    using namespace std;
    //求最大公约数,辗转相除法
    long long gonyue(long long a,long long b)
    {
    	if(b==0) return a;
    	else return gonyue(b,a%b);
    }
    //求最大公倍数
    long long gonbei(long long a,long long b)
    {
    	return a*b/gonyue(a,b);
    } 
    int main()
    {
       		int n;
    		scanf("%d",&n);
       		long long r1,r2,t1,t2;
       		while(n--)
       		{
       			scanf("%lld/%lld %lld/%lld",&r1,&t1,&r2,&t2);
       			int x=gonyue(r1,t1);
       			r1/=x;
       			t1/=x;
       			x=gonyue(r2,t2);
       			r2/=x;
       			t2/=x;
       			//分母求最大公约
    			int s1=gonyue(t1,t2);
    			//分子求最小公倍数
    			int s2=gonbei(r1,r2);
    			if(s2%s1==0)
    			{
    				printf("%lld
    ",s2/s1);
    			 }else
    			 {
    			 	printf("%lld/%lld
    ",s2,s1);
    			 }
    		}	
       		
    	
    }
    
  • 相关阅读:
    nginx基本命令
    一堆LCT板子
    17?17!
    ……妈妈我会写维修数列了!
    bzoj3744 Gty的妹子序列
    Noip2016 总结&反思
    bzoj4025 二分图
    [SHOI2008]堵塞的交通traffic
    bzoj4237 稻草人
    BestCoder Round #90
  • 原文地址:https://www.cnblogs.com/YenKoc/p/12779926.html
Copyright © 2020-2023  润新知