题目
{% raw %}
{% endraw %}
一天Alice打开了她日常玩的游戏,发现她里面还有n个游戏币,她想把这些游戏币花光。
现在可以买的一共三种道具,分别是房子(每一个价值1234567个游戏币),车子(每一个价值123456个游戏币),电脑(每一个价值1234个游戏币)。
现在她想知道,通过买这三种道具是否可以把n个游戏币全部花光。
{% raw %}
{% endraw %}
第一行,一个数字t(1<=t<=100)。代表测试数据数量。
对于每一组测试数据,一个整数n(1<=n<=1000000000),代表现在的游戏币。
{% raw %}
{% endraw %}
输出n行,每行输出"YES"或者"NO",表示她可以或者不可以把游戏币全部花光。
{% raw %}
{% endraw %}
2
1359257
17851817
{% raw %}
{% endraw %}
YES
NO
{% raw %}
题解
由于最大的值非常大,如果直接 dfs 会非常慢
而且打表的文件会非常大
而看 1234567
和 1000000000
其实差别不是很大
除一下发现最多也就能买 800
多套房子
而即使全部买成汽车也就能买 8000
多辆
乘起来的数据量只有 10e6
完全是可以遍历的
也就是说,只需要枚举房子和车的数量,然后判断剩下的钱能不能整除电脑
这样做不超时的原因是房子和车的价格都非常大,可以将许多数据“跨越”掉
如果这数都很小的话,就没有办法了
代码
```cpp 买买买 https://github.com/OhYee/sourcecode/tree/master/ACM 代码备份
//*/
#define debug
#include
//*/
#include
#include
#include
#include