AC Code我们发现每拼出一个数,这个数每位上的数字卡片数量将减一。
因此 我们初始一个大小为10的数组,数组中每个位置的数量都是2021,然后我们枚举可以拼出的数,将该数每一位对应的数字数量减一。
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
typedef long long ll;
#define MAX_SIZE 100005
#define MOD 1000000009
int main(){
int a[10];
for(int i = 0 ; i <= 9 ;i++) a[i] = 2021;
for(int i = 1 ; i <= MAX_SIZE ;i++){
int n = i;
while(n){
if(a[n % 10] == 0){
cout<< i - 1;
return 0;
}
a[n % 10]--;
n /= 10;
}
}
return 0;
}
Answer
3181
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)