UVA 10627 - Infinite Race(数论)
UVA 10627 - Infinite Race
题意:一段跑道,A,B分别在两端,速度为u。v,两个人跑到还有一端立即回头,回头时间不计,问经过单位时间t。两人相遇几次
思路:追及相遇问题。这样计算:
1、迎面相遇次数:第N次迎面相遇,路程和 = 全程*(2N-1)
ans+=((u+v)t+l)/(2l)
2、追及相遇次数:第N次追上相遇,路程差 = 全程*(2N-1)
ans+=((u−v)t+l)/(2l)
3、比較麻烦的是要扣掉边界位置迎面和追及反复的次数
设r为两人到同一端点的最少时间。因此1、t=(2k+1)r
2、ur=k1l
3、vr=k2l
r为l/v和l/u的整数倍,既r为l/gcd(u,v)的整数倍
2式子变形,得到u/gcd(u,v)∗r/(l/gcd(u,v))=k1
因此r取最小的正数解, 得到r=l/gcd(u,v)
1式变形,得到k=(t−r)/(2r),将r带回得到k=(t∗gcd(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(数论)的更多相关文章
- uva 10555 - Dead Fraction)(数论)
option=com_onlinejudge&Itemid=8&category=516&page=show_problem&problem=1496" st ...
- uva 10560 - Minimum Weight(数论)
题目连接:uva 10560 - Minimum Weight 题目大意:给出n,问说至少须要多少个不同重量的砝码才干称量1~n德重量,给出所选的砝码重量,而且给出k,表示有k个重量须要用上述所选的砝 ...
- UVA 11754 - Code Feat(数论)
UVA 11754 - Code Feat 题目链接 题意:给定一个c个x, y1,y2,y3..yk形式,前s小的答案满足s % x在集合y1, y2, y3 ... yk中 思路:LRJ大白例题, ...
- UVA 718 - Skyscraper Floors(数论)
UVA 718 - Skyscraper Floors 题目链接 题意:在一个f层高的楼上,有e个电梯,每一个电梯有x,y表示y + k * x层都能够到,如今要问从a层是否能到达b层(中间怎么换乘电 ...
- uva 10692 - Huge Mods(数论)
题目链接:uva 10692 - Huge Mods 题目大意:给出一个数的次方形式,就它模掉M的值. 解题思路:依据剩余系的性质,最后一定是行成周期的,所以就有ab=abmod(phi[M])+ph ...
- UVA 12009 - Avaricious Maryanna(数论)
UVA 12009 - Avaricious Maryanna 题目链接 题意:给定一个n.求出n个数位组成的数字x,x^2的前面|x|位为x 思路:自己先暴力打了前几组数据,发现除了1中有0和1以外 ...
- uva 11728 - Alternate Task(数论)
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u011328934/article/details/36409469 option=com_onli ...
- UVa 1393 - Highways(数论)
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- uva 11105 - Semi-prime H-numbers(数论)
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u011328934/article/details/36644069 option=com_onli ...
随机推荐
- [CSS]文本属性(Text)
CSS 文本属性(Text) 属性 描述 CSS color 设置文本的颜色. 1 direction 规定文本的方向 / 书写方向. 2 letter-spacing 设置字符间距. 1 lin ...
- ubuntu 14.04安装quickbuild buildagent (二)
使用方法: /home/carloz/programfiles/quickbuild6/buildagent/bin/agent.sh start /home/carloz/programfiles/ ...
- PHPCMS GET标签使用
大纲: get 标签概述get 标签语法get 标签创建工具get 调用本系统示例get 调用其他系统示例一.get 标签概述 通俗来讲,get 标签是Phpcms定义的能直接调用数据库里面内容 ...
- 随机List中数据的排列顺序
把1000个数随机放到1000个位置. 这也就是一个简单的面试题.觉得比较有意思.就顺带写一下 举个简单的例子吧. 学校统一考试的时候 有 1000个人,然后正好有 1000个考试位置,需要随机排列 ...
- 从零开始学习MySQL1---MySQL基础
数据库基础 数据库是一个长期存储在计算机内的.有组织的.有共享的.统一管理的.数据集合.它是一个按数据结构来存储和管理数据的计算机软件系统.数据库包含两层含义:保管数据的仓库,以及数据管理的方法和技术 ...
- Start of Something New
Hi Guys This will be the blog of SCaffrey for some time before he creates his own site:) Have a nice ...
- win7系统VPN设置
为了解除公司上网策略限制,或者为了上Google,Facebook,都可以通过设置VPN实现. 要使用VPN需要到VPN服务商注册,链接VPN服务商. ======================== ...
- Hibernate 注意命名与数据库关键字的冲突 处理方法
比如你映射了一个名称为key的属性,这是数据库所不允许的,因为它是数据库的关键字. 因此,你必须为此属性添加一对符号,即键盘上“1”键的左边的按键.
- UVA 586 Instant Complexity
给出一段程序,求运行时间. 现在只考虑一层LOOP,不妨用数组a[i]来表示n的i次方的系数.如果输入OP m,那么就在a[0]上加m,遇到END,就说明循环结束了,需要在系数上乘以循环次数.如果次数 ...
- (转载)获取当前运行的PHP版本信息
(转载)http://www.clovery.org/get-the-php-version-information.html 获取PHP运行环境信息,可以使用下面的函数. <?php phpi ...