欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 旅游 > 子2023(蓝桥杯)

子2023(蓝桥杯)

2025/5/7 4:28:42 来源:https://blog.csdn.net/m0_74707185/article/details/147018043  浏览:    关键词:子2023(蓝桥杯)

没想到能想出来这个dp(蒟蒻的成就感,大佬勿喷),哈哈哈,记录一下~

问题描述

小蓝在黑板上连续写下从 11 到 20232023 之间所有的整数,得到了一个数字序列: S=12345678910111213...20222023S=12345678910111213...20222023。 小蓝想知道 SS 中有多少种子序列恰好等于 20232023?

以下是 33 种满足条件的子序列(用中括号标识出的数字是子序列包含的数字):

1[2]34567891[0]111[2]1[3]14151617181920212223...1[2]34567891[0]111[2]1[3]14151617181920212223...

1[2]34567891[0]111[2]131415161718192021222[3]...1[2]34567891[0]111[2]131415161718192021222[3]...

1[2]34567891[0]111213141516171819[2]021222[3]...1[2]34567891[0]111213141516171819[2]021222[3]...

注意以下是不满足条件的子序列,虽然包含了 22、00、22、33 四个数字,但是顺序不对:

1[2]345678910111[2]131415161718192[0]21222[3]...1[2]345678910111[2]131415161718192[0]21222[3]...

答案提交

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'int dp[5];//1 2 3 4//1表示2的个数,2表示20的个数,3表示202的个数,4表示2023的个数signed main()
{for(int i=1;i<=2023;i++){vector<int> v;int x=i;while(x){v.push_back(x%10);x/=10;}reverse(v.begin(),v.end());for(int j=0;j<v.size();j++){if(v[j]==2){dp[1]++;dp[3]=dp[3]+dp[2];}else if(v[j]==0){dp[2]=dp[2]+dp[1];}else if(v[j]==3){dp[4]=dp[4]+dp[3];}}}cout<<dp[4]<<endl;return 0;
}
//计算2的个数,20的个数,202的个数,2023的个数
//
//

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词