传送门:http://codeforces.com/contest/681/problem/B
思路:最朴素的想法是用三重循环枚举 a,b,c ,但是其实用两重循环枚举 a,b ,再检查是否存在满足条件的c即可。
代码:
#include <bits/stdc++.h>
using namespace std;
#define ll __int64
const int inf=0x3f3f3f3f;
const int N=3e5+10;
ll n;
int main(){
scanf("%lld", &n);
ll a=1234567, b=123456, c=1234;
for(ll i=0; ; i++){
if(i*a>n)break;
for(ll j=0; ; j++){
int res=n-a*i-b*j;
if(res<0)break;
if(res%c == 0){
puts("YES");
exit(0);
}
}
}
puts("NO");
return 0;
}

本文介绍了一个游戏经济模拟问题,玩家需要通过购买不同价值的物品来消耗初始游戏币,达到特定的目标。文章提供了详细的解题思路及代码实现,采用双重循环来枚举可能的购买组合。

2471

被折叠的 条评论
为什么被折叠?



