SSL-ZYC 2416 条形图

本文通过一道具体题目介绍了两种解题思路:深度优先搜索(DFS)与动态规划(DP)。首先尝试使用DFS解决,但遇到大规模数据时效率低下;随后通过打表法给出部分结果,最后采用高精度动态规划实现高效求解。

题目大意:
这里写图片描述


思路:

1.DFS

考场推了半天这道题,没发现什么规律,于是打了一个DFS就跑。。。

#include <iostream>
using namespace std;

int n;
long long sum;

void dfs(int x,int k) 
{
    if (x>n||k==0)
    {
        sum++;
        return;
    }
    for (int i=0;i<=min(k,n-x+1);i++) dfs(x+1,i);
}

int main()
{
    cin>>n;
    dfs(1,999);
    cout<<sum-1;
    return 0;
}
2.打表

深搜不行,打个表不行?
事实证明:还是不行。。。
当n>20时DFS就跑不动了,等了20min都没出来。。。

#include <cstdio>
using namespace std;

int main()
{
    scanf("%d",&n);
    if(n==1) puts("1");
    if(n==2) puts("4");
    if(n==3) puts("13");
    if(n==4) puts("41");
    if(n==5) puts("131");
    if(n==6) puts("428");
    if(n==7) puts("1429");
    if(n==8) puts("4861");
    if(n==9) puts("16795");
    if(n==10) puts("58785");
    if(n==11) puts("208011");
    if(n==12) puts("742899");
    if(n==13) puts("2674439");
    if(n==14) puts("9694844");
    if(n==16) puts("129644789");
    if(n==17) puts("477638699");
    if(n==18) puts("1767263189");
    return 0;
}
3.DP

正解出场!!!
首先,要用高精度!
方程:f[i][j][k]=f[i-1][j][k]+f[i][j-1][k]+t;


代码:

#include <cstdio>
using namespace std;

const int maxn=100; 
int n,f[101][101][maxn+1],t,o,a[maxn+1];

int main()
{
    scanf("%d",&n);
    for (int i=1;i<=n;i++)
    {
        f[i][0][maxn]=1;  //初始化
        for (int j=1;j<=i;j++)
        {
            t=0;  //进位
            for (int k=maxn;k>=1;k--)  //高精度
            {
                f[i][j][k]=f[i-1][j][k]+f[i][j-1][k]+t;
                t=f[i][j][k]/10;
                f[i][j][k]%=10;
            }
        } 
    }
    for (int i=1;i<=n;i++)
     for (int j=maxn;j>=1;j--)  //求第一行有n个的情况的总和(即答案)
     {
        o=f[n][i][j]+a[j]+t;
        t=o/10;
        a[j]=o%10;
     }
    int i=1;
    while (a[i]==0) i++;
    for (int j=i;j<=maxn;j++) printf("%d",a[j]);  //高精度专用输出
    return 0;
}
基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究(Matlab代码实现)内容概要:本文围绕“基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究”展开,提出了一种结合数据驱动方法与Koopman算子理论的递归神经网络(RNN)模型线性化方法,旨在提升纳米定位系统的预测控制精度与动态响应能力。研究通过构建数据驱动的线性化模型,克服了传统非线性系统建模复杂、计算开销大的问题,并在Matlab平台上实现了完整的算法仿真与验证,展示了该方法在高精度定位控制中的有效性与实用性。; 适合人群:具备一定自动化、控制理论或机器学习背景的科研人员与工程技术人员,尤其是从事精密定位、智能控制、非线性系统建模与预测控制相关领域的研究生与研究人员。; 使用场景及目标:①应用于纳米级精密定位系统(如原子力显微镜、半导体制造设备)中的高性能预测控制;②为复杂非线性系统的数据驱动建模与线性化提供新思路;③结合深度学习与经典控制理论,推动智能控制算法的实际落地。; 阅读建议:建议读者结合Matlab代码实现部分,深入理解Koopman算子与RNN结合的建模范式,重点关注数据预处理、模型训练与控制系统集成等关键环节,并可通过替换实际系统数据进行迁移验证,以掌握该方法的核心思想与工程应用技巧。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值