UVA 10995 - Educational Journey(数论)

题意:10995 - Educational Journey

题意:给定A遇到C,M,D的时刻和D遇到C,M的时刻,求C遇到M的时刻

思路:先把时间都处理成秒,然后从A遇到C后,从该点出发,A遇到D和C遇到D,就能求出速度Va和Vc之间的关系,由A遇到M后,从该点出发,A遇到D和M遇到D可以推出Va和Vm的关系,从而推出Vc和Vm的关系,然后由C和M遇到点出发,C遇到D和M遇到D的时间可以算,然后又有速度关系,就可以推出他们相遇时间

代码:

#include <stdio.h>
#include <string.h>

double t1, t2 ,t3 ,t4, t5;

bool read(double &t) {
	double h, m, s;
	if (scanf("%lf:%lf:%lf", &h, &m, &s) != 3 || h < 0) return false;
	t = h * 3600 + m * 60 + s;
	return true;
}

int main() {
	while (read(t1)) {
		read(t2); read(t3); read(t4); read(t5);
		double k = (t5 - t2) * (t3 - t1) / (t4 - t1) / (t3 - t2);
		int t = (int)((t4 * k - t5) / (k - 1) + 1e-6 + 0.5);
		printf("%02d:%02d:%02d\n", t / 3600, t % 3600 / 60, t % 3600 % 60);
	}
	return 0;
}

UVA 10995 - Educational Journey(数论),码迷,mamicode.com

时间: 2024-10-25 00:16:40

UVA 10995 - Educational Journey(数论)的相关文章

uva 10995 - Educational Journey(数论)

在高速电路中,工程师常常建议在高速总线上加33Ω串联电阻,理由有三: 用于阻抗匹配 可以降低电压波动与振铃效应,减小信号边沿陡峭程度,减少高频噪声及过冲 也方便调试 我在调试DSP6713访问SDRAM总线时,使用时钟频率50MHz. 第一个PCB版本使用0Ω串联电阻,测试SDRAM没有问题,但第二版PCB使用0Ω发现EMIF的时钟波形出现异常,读取SDRAM数据也出错.出错波形如下: 时钟波形呈现如上图所示的结果是:原本一个时钟上升沿,由于电压的波动,时钟存在多个上升沿(如上图),因此会造成原

【推公式】UVa 10995 - Educational Journey

1A~,但后来看人家的代码好像又写臭了,T^T... Problem A: Educational journey The University of Calgary team qualified for the 28th ACM International Collegiate Programming Contest World Finals in Prague, Czech Republic. Just by using the initials of team members they g

uva 10560 - Minimum Weight(数论)

题目连接:uva 10560 - Minimum Weight 题目大意:给出n,问说至少需要多少个不同重量的砝码才能称量1~n德重量,给出所选的砝码重量,并且给出k,表示有k个重量需要用上述所选的砝码测量. 解题思路:重量为1的砝码肯定要选,它可以表示到1的重量,那么下一个砝码的重量肯定选择3(2?1+1),这样1,3分别可以用一个砝码表示,而2,4分别为3-1和3+1,这样1~4的重量也都可以表示.于是有公式ai=si?1?2+1. #include <cstdio> #include &

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

题目链接:uva 11105 - Semi-prime H-numbers 题目大意:H-number为4?k+1(k为非负数),H-composites为因子中含有H-number(不包括自己本身)的数,反之久是H-prime,给定n,求有多少H-composites. 解题思路:首先用筛选法求出范围内的H-prime,然后枚举两个判断乘积是否在范围内. #include <cstdio> #include <cstring> const int maxn = 1e6+5; ty

UVA 11754 - Code Feat(数论)

UVA 11754 - Code Feat 题目链接 题意:给定一个c个x, y1,y2,y3..yk形式,前s小的答案满足s % x在集合y1, y2, y3 ... yk中 思路:LRJ大白例题,分两种情况讨论 1.所有x之积较小时候,暴力枚举每个集合选哪个y,然后中国剩余定理求解 2.所有x之积较大时候,选定一个k/x尽可能小的序列,枚举x * t + y (t = 1, 2, 3...)去暴力求解. 代码: #include <stdio.h> #include <string.

UVA 718 - Skyscraper Floors(数论)

UVA 718 - Skyscraper Floors 题目链接 题意:在一个f层高的楼上,有e个电梯,每个电梯有x,y表示y + k * x层都可以到,现在要问从a层能否到达b层(中间怎么换乘电梯不限制) 思路:对于两个电梯间能不能换乘,只要满足y[i] + xx x[i] == y[j] + yy y[j].然后移项一下,就可以用拓展欧几里得求解,进而求出x,y的通解,然后利用通解范围x' >= 0, y' >= 0, x[i] x' + y[i] <= f, x[j] y' + y

UVA 10692 - Huge Mods(数论)

UVA 10692 - Huge Mods 题目链接 题意:求a0a1a2...mod m 思路:直接算肯定不行,利用欧拉定理ab=a(b mod phi(m) + phi(m))(b>=phi(m)),对指数进行降值处理,然后就可以利用快速幂去计算了,计算过程利用递归求解. 代码: #include <stdio.h> #include <string.h> const int N = 1005; int phi[N * 10], vis[N * 10], m, n, a[

uva 718 - Skyscraper Floors(数论+bfs)

题目链接:uva 718 - Skyscraper Floors 题目大意:一栋大楼,有F层楼,E个电梯,现在要从A层到B层,问是否可行,每个电梯给出Xi和Yi,代表这个电梯可以到达的层数Yi+k?Xi(k≥0) 解题思路:建图,以A,B以及电梯为节点建图,将可以到达A,B这两层的电梯与这两点建边,在将两两电梯可以达到同一层的建边,判断方法为:Yi+aXi=Yj+bXj,移项得:aXi+bXj=Yj?Yi,即是一个线性方程,用拓展欧几里得算法求出通解的形式,判断是否存在通解在0~F之间即可. #

UVA 10623 - Thinking Backward(数论)

UVA 10623 - Thinking Backward 题目链接 题意:给定一个数量,求用圆,椭圆,三角形分割平面,分割出该数量,输出所有情况 思路:有公式2 + 2m(m-1) + n(n-1) + 4mn + 3p(p-1) + 6mp + 6np 由于m和p都是[0,100],所以可以枚举m和p,去求出n,然后判断合不合适 代码: #include <stdio.h> #include <string.h> #include <math.h> #include