蓝桥杯2021年第十二届C++省赛第二题-卡片

蓝桥杯2021年第十二届C++省赛第二题-卡片,第1张

Idea

我们发现每拼出一个数,这个数每位上的数字卡片数量将减一。



因此 我们初始一个大小为10的数组,数组中每个位置的数量都是2021,然后我们枚举可以拼出的数,将该数每一位对应的数字数量减一。


AC Code
#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

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/563329.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-02
下一篇 2022-04-02

发表评论

登录后才能评论

评论列表(0条)

保存