T1
先处理 (1580) 年之前的情况,根据 (4) 年的周期搞。
然后处理分界点附近的情况,算到 (1584) 年之前就可以了。
最后算一下在第哪个 (400) 年的周期,(400) 年内直接一年一年模拟。
时间复杂度 (Oleft(Q ight))。
此外建议使用一个函数实现一年中第 (x) 天的日期。
T2
统计可以自由选择的位的个数 (x)(存在一种已饲养的动物该位上是 (1) 或该位为 (1) 没有必须要购买的饲料),答案就是 (2^x-n)。
因为左移 (64) 位会溢出,所以可以搞成 (2^{x-1}-n+2^{x-1})。
但这样当 (n=0) 的时候还是会出锅,特判掉就好了。
有必要的各种地方都记得开 unsigned long long
。
时间复杂度 (Oleft(nk+m ight))。
T3
不会。
T4
不会。