Я искал лучшее решение проблемы MAXCOUNT и нашел несколько строк, которые я не понял.Каково значение этих #defines?
Codechef Problem и Best Solution submitted
Пока я читал код, чтобы наблюдать подход, я столкнулся эти строки в верхней части кода:
#define isSet(n) flags[n>>5]&(1<<(n&31))
#define unset(n) flags[n>>5] &= ~(1<<(n&31))
#define set(n) flags[n>>5]|=(1<<(n&31))
Я понятия не имею, что такое значение используя эти строки.
Может кто-нибудь объяснить эти строки и почему они используются?
Поиск "C макросов" – HamZa
BTW: Это не отличные макросы. При минимальном значении '(1 << (n & 31))' должно обеспечивать беззнаковое арифметическое, например: '(1u << (n & 31))'. Кроме того, константа 31 основана на предположениях диапазона «n». – chux