A题:在储存价格的时候,在价格的末尾再加一位数,0表示没被选,1表示被选了,这样就能保证不超内存。
已知 A C 求B的个数。(A能整除C)
起初以为K是当作变量来做,但是很明显,如果K当作变量那么显然B的个数是无数个。
因为任意C*K,B都可以等于C*K.
所以,显然K要当作常量, 那么K是多少其实是无所谓的,直接当作1即可。
C题: n位数的最小的一个能被49整除的数。 利用快速幂求出 10^n % 49,求得的这个数设为t。49-t 就是我们所求数的末两位。
前面的各位显然是100000XX 。 在n小于等于2 的时候特判即可
H题: 给出三个速度v1v2v3,和操场周长L,求第n次相遇。
比较明显的是求出v1v2,v2v3相对速度v12、v23,然后L分别除以v12、v23得1、2和2、3的相遇时间t1,t2,然后求时间的最小公倍数,再乘n。
但是t1,t2是小数,求最小公倍数很麻烦,需要暴力枚举。我们需要推导来得到更快速的方法。
推导得到 这个最小公倍数就是 L/(X) ,X是v12、v23的最大公约数。
推导的关键在于,求两个分数的最大公约数,需要把两个数乘上分母的公倍数P,然后得到两个整数,求他们的最大公约数,再除以P。
代码不发了。
其他题当时AC了,感觉没什么好BB的~~
实在需要的话也可以找我
Problem B: 小刀带你们玩游戏
Description
xdlove很喜欢小刀,所以他经常去找小刀玩,有一天他们两个在玩跳跃的游戏,规则是这样的:两个人以相同的速度往前跳跃,但是每次跳跃距离不同,小刀每次跳跃距离为A米,xdlove每次跳跃距离为B米,他们两个只在离原点K*C(K是大于等于1的整数)米处同时落地。现在xdlove告诉你A和C,你能告诉xdlove他的跳跃距离B有多少个不同的值吗?
Input
输入数据为T组(T<