I seriously need help on this 510D - Fox And Jumping ,can anybody give a detailed solution of this problem.
Thanks a lot in advance!
№ | Пользователь | Рейтинг |
---|---|---|
1 | jiangly | 3976 |
2 | tourist | 3815 |
3 | jqdai0815 | 3682 |
4 | ksun48 | 3614 |
5 | orzdevinwang | 3526 |
6 | ecnerwala | 3514 |
7 | Benq | 3482 |
8 | hos.lyric | 3382 |
9 | gamegame | 3374 |
10 | heuristica | 3357 |
Страны | Города | Организации | Всё → |
№ | Пользователь | Вклад |
---|---|---|
1 | cry | 168 |
2 | -is-this-fft- | 165 |
3 | atcoder_official | 161 |
3 | Um_nik | 161 |
5 | djm03178 | 157 |
6 | Dominater069 | 156 |
7 | adamant | 154 |
8 | luogu_official | 152 |
9 | awoo | 151 |
10 | TheScrasse | 147 |
I seriously need help on this 510D - Fox And Jumping ,can anybody give a detailed solution of this problem.
Thanks a lot in advance!
Название |
---|
What did you not understand?
Basically, we need to select any subset of numbers such that the GCD of their l-values is 1. This comes from Bezout's identity. If ax+by=c and c=1, then from any given position, we can move to the immediate adjacent left or right position using some combination of moves.
Now, since n<=300, we can use DP to get the minimum cost of such a subset. We need to maintain the current index and the GCD till now in our DP state. Since l <= 1e9, this will take a lot of memory. But notice that if we fix the first element of our subset, the GCD is always a subset of of the set of its prime factors. Any number <= 1e9 has atmost 9 different prime factors, so you can just use a bitmask (of size 2^9) to represent it. This reduces the space complexity.
Total time complexity = O(n*n*2^9)
Code — I did not use bitmasks in my code but rather a map to store the actual GCD. :)