• 子2023


    【问题描述】
    小蓝在黑板上连续写下从 1 到 2023 之间所有的整数,得到了一个数字序列:
    S = 12345678910111213 . . . 20222023。
    小蓝想知道 S 中有多少种子序列恰好等于 2023?
    提示,以下是 3 种满足条件的子序列(用中括号标识出的数字是子序列包含的数字):
    1[2]34567891[0]111[2]1[3]14151617181920212223…
    1[2]34567891[0]111[2]131415161718192021222[3]…
    1[2]34567891[0]111213141516171819[2]021222[3]…
    注意以下是不满足条件的子序列,虽然包含了 2、0、2、3 四个数字,但是顺序不对:
    1[2]345678910111[2]131415161718192[0]21222[3]…

    1.dp写法

    1. #include
    2. using namespace std;
    3. #define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
    4. #define endl '\n'
    5. typedef long long LL;
    6. typedef pair<int,int> PII;
    7. string s;
    8. LL dp[5];
    9. int main()
    10. {
    11. IOS;
    12. for(int i=1;i <= 2023;i++) s+=to_string(i);
    13. for(int i=0;i < s.size();i++)
    14. {
    15. if(s[i] == '2')
    16. {
    17. dp[1]++;
    18. dp[3]+=dp[2];
    19. }
    20. if(s[i] == '0') dp[2]+=dp[1];
    21. if(s[i] == '3') dp[4]+=dp[3];
    22. }
    23. cout<4];
    24. return 0;
    25. }


    2.剪枝后暴力

    1. #include
    2. using namespace std;
    3. #define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
    4. #define endl '\n'
    5. typedef long long LL;
    6. typedef pair<int,int> PII;
    7. string s;
    8. LL ans=0;
    9. string op="2023";
    10. void dfs(int u,int cnt)
    11. {
    12. if(cnt == 4)
    13. {
    14. ans++;
    15. return ;
    16. }
    17. if(u >= s.size()) return ;
    18. if(op[cnt] == s[u]) dfs(u+1,cnt+1);
    19. dfs(u+1,cnt);
    20. }
    21. int main()
    22. {
    23. IOS;
    24. for(int i=1;i <= 2023;i++)
    25. {
    26. string t=to_string(i);
    27. for(int j=0;j < t.size();j++)
    28. {
    29. if(t[j] == '2' || t[j] == '0' || t[j] == '3')
    30. s+=t[j];
    31. }
    32. }
    33. dfs(0,0);
    34. cout<
    35. return 0;
    36. }

    枚举四个位置,只有数字放到该放的位置,才能填下一个位置,也可以选择不填。

  • 相关阅读:
    冰冰学习笔记:反向迭代器的模拟
    如何用FLStudio水果21中文版创作音乐?(官方基础教程中文版)
    SSM在线车队货车管理系统
    Intellij各个功能小件的样子
    DASCTF X GFCTF 2022十月挑战赛--Crypto
    Codeforces Round 597 (Div. 2) D (最小生成树)
    C/C++内存泄漏的原因以及怎么解决
    OpenCV 10(图像轮廓)
    用html编写的小广告板
    grid布局之项目属性grid-column&grid-row
  • 原文地址:https://blog.csdn.net/qq_62197596/article/details/133171129