当前位置: 首页 > news >正文

P9420 [蓝桥杯 2023 国 B] 子 2023 / 双子数--2024冲刺蓝桥杯省一

点击跳转例题

子2023思路:dp。最开始想着枚举,但是超时,想着优化以下,但是还是不行。

那么切换算法,应该是dp:
1.f [i] 表示当前字符串 以 2023  为第 i 位的数量方案:如f [0] 表示 前i个字符串中2 的数量, f [1] 表示 前i个字符串中 20 的数量, f [2] 表示 前i个字符串中202 的数量, f [3] 表示 前i个字符串中 2023 的数量.

 2. 状态转移方程

3.初始化

4.迭代更新

双子数思路:枚举即可,线性筛法,因为最大为2e14次方,所以筛出1e7的素数即可,时间为0.1秒左右。然后枚举所有的可能性即可,注意枚举的时候,如果判断不当可能会爆longlong,可以开int 128, 单独修改int为int128即可

现在测评出了问题,算出答案后,直接用答案测评。

 

#include <bits/stdc++.h>
#define int long long //(有超时风险)
#define PII pair<int,int>
#define endl '\n'
#define LL __int128

using namespace std;

const int N=2e6+10,M=1e3+10,mod=998244353,INF=0x3f3f3f3f;

int a[N],b[N],c[N],pre[N];

int prime[N],cnt;
bool st[N];
int sum[N];

void get_prime(int n)
{
    for(int i=2;i<=n;i++)
    {
        if(!st[i])prime[cnt++]=i;
        for(int j=0;prime[j]<=n/i;j++)
        {
            st[prime[j]*i]=true;
            if(i%prime[j]==0)break;
        }
    }
}

signed main()
{
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);

    if(getchar()=='A')
    {
        string s;
        for(int i=1;i<=2023;i++)
            s+= to_string(i);

        vector<int>f(5);
        for(int i=0;i<s.size();i++)
        {
            //状态转移方程,如当s[i]=='2'的时候,2的数量++,
            //202的数量为原来202的数量加上新产生的数量,就是当前的2与以前的20形成的202.
            if(s[i]=='2')f[0]++,f[2]=f[2]+f[1];
            if(s[i]=='0')f[1]=f[1]+f[0];
            if(s[i]=='3')f[3]=f[3]+f[2];
        }
        cout<<f[3]<<endl;
    }
    else
    {
        get_prime(1e7);

        int l=2333,r=23333333333333;
        int ans=0;
        for(int i=0;i<cnt;i++)
        {
            //提前退出,优化枚举,避免超时
            if(prime[i]*prime[i]*prime[i+1]*prime[i+1]>r)break;
            for(int j=i+1;j<cnt;j++)
            {
                int p1=prime[i],p2=prime[j];
                if(p1*p1*p2*p2<l)continue;
                if(p1*p1*p2*p2>r)break;
                ans++;
            }
        }
        cout<<ans<<endl;
    }

    return 0;
}

相关文章:

  • 如何以管理员身份删除node_modules文件
  • MATLAB实现二阶模糊逻辑控制系统仿真
  • 适用于 Windows 和 Mac 的 16 款最佳数据恢复软件
  • Leetcode 377 组合总和 Ⅳ
  • FlinkCDC全量及增量采集SqlServer数据
  • java -jar启动SpringBoot项目时配置文件加载位置与优先级
  • BC107 矩阵转置
  • 【教3妹学编程-算法题】1696. 跳跃游戏 VI
  • 【知识图谱+大模型的紧耦合新范式】Think-on-Graph:解决大模型在医疗、法律、金融等垂直领域的幻觉
  • Postman发送带登录信息的请求
  • web前后端小坑记录
  • git小白进阶之路
  • C#基础-线程暂停方案之重置事件
  • 状态压缩 笔记
  • 景联文科技受邀出席全国信标委生物特征识别分委会二届五次全会
  • Linux系统Shell脚本-----------正则表达式 文本三剑客之---------grep、 sed
  • LLM(大语言模型)——大模型简介
  • Python pyglet 游戏开发
  • 红队渗透靶机:TIKI: 1
  • ubuntu22.04@laptop OpenCV Get Started: 002_reading_writing_videos
  • 现场丨“影像上海”启幕:串联摄影、电影与当代艺术
  • 少年中国之少年的形塑
  • “80后”海南琼海市长傅晟,去向公布
  • “鱼米之乡”江苏兴化的产业哲学:以融合与创新重构价值链条
  • “五一”假期预计全社会跨区域人员流动累计14.67亿人次
  • 竞彩湃|新科冠军利物浦留力?纽卡斯尔全力冲击欧冠