UVA 10627 - Infinite Race

option=com_onlinejudge&Itemid=8&page=show_problem&category=516&problem=1568&mosmsg=Submission+received+with+ID+13837674" target="_blank" style="">题目链接

题意:一段跑道,A,B分别在两端,速度为u。v,两个人跑到还有一端立即回头,回头时间不计,问经过单位时间t。两人相遇几次

思路:追及相遇问题。这样计算:

1、迎面相遇次数:第N次迎面相遇,路程和 = 全程*(2N-1)

ans+=((u+v)t+l)/(2l)

2、追及相遇次数:第N次追上相遇,路程差 = 全程*(2N-1)

ans+=((uv)t+l)/(2l)

3、比較麻烦的是要扣掉边界位置迎面和追及反复的次数

设r为两人到同一端点的最少时间。因此1、t=(2k+1)r

2、ur=k1l
3、vr=k2l

rl/vl/u的整数倍,既rl/gcd(u,v)的整数倍

2式子变形,得到u/gcd(u,v)∗r/(l/gcd(u,v))=k1

因此r取最小的正数解, 得到r=l/gcd(u,v)

1式变形,得到k=(tr)/(2r),将r带回得到k=(tgcd(u,v)+l)/(2l)

可是这样还不算完。因为ur和vr必须差一个奇数个的l。将r带入。得到

(l/gcd(u,v)−l/gcd(u,v))必须为奇数才有反复的情况出现,须要推断

所以最后反复情况为:

if ((u - v) / gcd(u, v) % 2)

ans -= (gcd(u, v) * t + l) / (2 * l)

代码:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <algorithm>
using namespace std; long long l, u, v, t; long long gcd(long long a, long long b) {
if (!b) return a;
return gcd(b, a % b);
} int main() {
while (~scanf("%lld%lld%lld%lld", &l, &u, &v, &t) && l) {
if (u == 0 && v == 0) {
printf("0\n");
continue;
}
if (u < v) swap(u, v);
long long ans = 0;
ans += ((u + v) * t + l) / (2 * l);
ans += ((u - v) * t + l) / (2 * l);
long long d = gcd(u, v);
if ((u - v) / d % 2)
ans -= (d * t + l) / (2 * l);
printf("%lld\n", ans);
}
return 0;
}

UVA 10627 - Infinite Race(数论)的更多相关文章

  1. uva 10555 - Dead Fraction)(数论)

    option=com_onlinejudge&Itemid=8&category=516&page=show_problem&problem=1496" st ...

  2. uva 10560 - Minimum Weight(数论)

    题目连接:uva 10560 - Minimum Weight 题目大意:给出n,问说至少须要多少个不同重量的砝码才干称量1~n德重量,给出所选的砝码重量,而且给出k,表示有k个重量须要用上述所选的砝 ...

  3. UVA 11754 - Code Feat(数论)

    UVA 11754 - Code Feat 题目链接 题意:给定一个c个x, y1,y2,y3..yk形式,前s小的答案满足s % x在集合y1, y2, y3 ... yk中 思路:LRJ大白例题, ...

  4. UVA 718 - Skyscraper Floors(数论)

    UVA 718 - Skyscraper Floors 题目链接 题意:在一个f层高的楼上,有e个电梯,每一个电梯有x,y表示y + k * x层都能够到,如今要问从a层是否能到达b层(中间怎么换乘电 ...

  5. uva 10692 - Huge Mods(数论)

    题目链接:uva 10692 - Huge Mods 题目大意:给出一个数的次方形式,就它模掉M的值. 解题思路:依据剩余系的性质,最后一定是行成周期的,所以就有ab=abmod(phi[M])+ph ...

  6. UVA 12009 - Avaricious Maryanna(数论)

    UVA 12009 - Avaricious Maryanna 题目链接 题意:给定一个n.求出n个数位组成的数字x,x^2的前面|x|位为x 思路:自己先暴力打了前几组数据,发现除了1中有0和1以外 ...

  7. uva 11728 - Alternate Task(数论)

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u011328934/article/details/36409469 option=com_onli ...

  8. UVa 1393 - Highways(数论)

    链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  9. uva 11105 - Semi-prime H-numbers(数论)

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u011328934/article/details/36644069 option=com_onli ...

随机推荐

  1. Android Thread和AsyncTask

    1. 线程Thread 2. 异步任务AsyncTask ------------------------------------------------- --------------------- ...

  2. phpcms v9栏目列表调用每一篇文章内容方法1

    我们先来看下默认栏目调用的代码: 复制代码代码如下:{pc:content action="lists" catid="$catid" num="25 ...

  3. iOS: 学习笔记, Swift与Objective-C混用简明教程(转载)

    Swift与Objective-C混用简明教程 转载自:https://github.com/lifedim/SwiftCasts/tree/master/000_mix_swift_objc 我想很 ...

  4. ios 复制黏贴板的使用

    在iOS中,可以使用剪贴板实现应用程序之中以及应用程序之间实现数据的共享.比如你可以从iPhone QQ复制一个url,然后粘贴到safari浏览器中查看这个链接的内容. 一.在iOS中下面三个控件, ...

  5. linux下VI编辑器的使用

    一.VI编辑器简述       VI 编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下.由于不需要图形界面,使它成了效率很高的文本编辑器.尽管在Linux上也有很多图形界面的编辑器可 ...

  6. [译]36 Days of Web Testing(三)

    Day 14: Automate the tedious Why ? 有些时候,web测试还是蛮单调乏味的,在开始测试前,你可能要必须跳转到一个特定的表单页面,或则为了得到一个特定的页面(或配置),你 ...

  7. seajs配合spm应用之四弹出框

    前面描述了 seajs的弹出遮罩层, 还没讲到弹出框, 这里接着把那几个例子介绍完. 目前已经有的工作是, 点击toggle按钮,可以弹出一个背投一样的暗灰色遮罩层, 主要的作用就是遮住当前页面上所有 ...

  8. CTSC模拟题 树上的路径

    Description 给定一棵\(N\)个结点的树,结点用正整数\(1 \dots N\)编号,每条边有一个正整数权值.用\(d(a, b)\)表示从结点\(a\)到结点\(b\)路径上经过边的权值 ...

  9. dyld: lazy symbol binding failed: Symbol not found: _objc_setProperty_nonatomic

    这个错误,一般在高版本设备里面不会出现,而在低版本会出现比如你的项目或者引入的静态库的Deployment Target设置成了ios6.0而你的测试设备是ios5.0甚至更低,就会出现如上错误.因为 ...

  10. importExcel运用注解实现EXCEL导入poi类

    JAVA报表 package com.app.common.excel; import java.io.File; import java.io.FileInputStream; import jav ...