2012-04-02 3 views
1

Я практиковал проблему программирования на основе алгоритма. У меня возникают трудности при решении этой проблемы. Мне нужна идея (только небольшой подход/подсказка), чтобы решить эту проблему эффективно, поэтому PLZ помогите мне! Вот проблема Заявление ::Сколько существует постов?

Предположим, что есть два кролика, названных кроличьим foo и кроличьим баром. Инициативно оба они расположены в начале (в центре), обращенные друг к другу.

Foo знает, что скачок только двух длин m, n. Это foo может прыгать либо в длину длиной до левой, либо в длину до его правой или n длины влево или n на его правую сторону в одной попытке ,

Аналогично, бар также знает скачок только двух длин-p, q.Этот бар может прыгать либо в длину, либо влево, либо вправо или влево или влево, или на длину q до его правой стороны в единственная попытка.

Теперь хозяин этих двух кроликов хочет разместить себя точно в какой-то момент, так что оба кролика смогут достичь своего хозяина в одной или нескольких попытках. Кроме того, мастер размещает себя на расстоянии не более L длин от начала координат. Мы должны вычислить, сколько позиций мастер может разместить самостоятельно.

m, n, p, q и L очень большие, размером 10^17.

Как решить эту проблему эффективно.

Пример ::

т = 1 п = 2

т = 4 п = 5

L = 1

ответ = 3;

Как

Foo может подскакивает 2 длины к правой стороне и после этого одной длины к его левой стороне.

Бар может перепрыгивать 5 длин до его rgt и после этого четыре lenth к его левой стороне.

, чтобы добраться до своего хозяина, который находится на расстоянии 1 единицы от места происхождения.

Foo 2 длина левый и после этого один длина правая сторона. Bar 5 оставил длину и 5 длиной РТГ, чтобы достичь своего хозяина, который расположенного себя на 1 длину от происхождения

Мастер также может поставить себя в начале, так как Foo и бар, смогут достичь своего хозяина в два ходе поэтому суммарные позиции = 3.

Другие примеры ::

м = 2 п = 4

р = 3 д = 6

L = 7

ответ = 3.

м = 10 п = 12

р = 3 д = 9

ответ = 5

+0

Когда вы получаете решение, которое работает на вас, вы должны отметить его как принятый ответ, чтобы будущие читатели знали, какой ответ сработал для вас. Вы, кажется, не понимаете этого. – Rushil

ответ

5

Foo может достигнуть любого положения, которое кратно gcd(m,n) и только те. Бар может достигать позиций, кратных gcd(p,q), поэтому позиции, достигаемые обоими, равны кратным lcm(gcd(m,n),gcd(p,q)).

+0

@ Daniel Fischer: Спасибо! Но как использовать «L» для решения этого. Так что будет точным решением. Можете ли вы мне помочь? –

+1

@Jack - '(только маленький подход/подсказка)' не включает точное решение: P –

+0

@Jack: «Мне нужна идея (только малый подход/подсказка)», что было бы слишком большим намеком. =) Этот ответ в основном решает проблему для вас. – ninjagecko

1

Если м = НОК (HCF (, б) и HCF (с, д)) то ответ будет = 2 * [к/м] + 1

в принципе, самое короткое расстояние человек может перемещаться в HCF (, b), аналогично лицу B.

Наименьшее положение (ближайший к 0), оба & В может быть, это LCM обоих HCF с. И +1 для центра. Вам нужно найти число кратных LCM в диапазоне k с обеих сторон.

Так вы разделите K на м и удвоить составную часть дивизии (для обеих сторон 0) и добавить 1 (для центра). Надеюсь, это поможет.

Смежные вопросы