2024牛客寒假算法基础集训营4【难题详解】

气象数据收集 国家气象信息中心-中国气象数据网 (cma.cn)国家气象信息中心-中国气象数据网 (cma.cn)预报数据:需要定制,收费10万+路面数据同化系统,实时。 阅读详情

F. 来点每日一题

DP

由题容易想到的:

dp[i]表示 1-i 中求得的最大值, 所以最后ans为 dp[n]

状态转移与之前dp不一样的是,需要二维枚举,并且此题n的范围小,可以二维枚举:

dp[j]=max(dp[i-1]+cal(i,j),dp[j]);

cal(i,j)表示选 i~j 这个区间的最大值,如何计算?        还是DP

$\left(\left(b_1-b_2\right)\times b_3-b_4\right)\times b_5-b_6$

由于式子中有乘法,所以既要维护[i,j]区间的最大值,也要维护最小值

mx[i][j][1]=表示选了式子中的第一个数b1

状态转移:按选或不选第j个数划分

mx[i][j][1]=max(a[j],mx[i][j-1][1]);

mx[i][j][2]=max(mx[i][j-1][1]-a[j],mx[i][j-1][2]);

mx[i][j][3]=max(mx[i][j-1][2]*a[j],mx[i][j-1][3]);

mx[i][j][4]=max(mx[i][j-1][3]-a[j],mx[i][j-1][4]);

mx[i][j][5]=max(mx[i][j-1][4]*a[j],mx[i][j-1][5]);

mx[i][j][6]=max(mx[i][j-1][5]-a[j],mx[i][j-1][6]);

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define all(x) x.begin(),x.end()
#define no cout<<"No"<<endl
#define yes cout<<"Yes"<<endl
#define endl '\n'
// #define x first
// #define y second
typedef pair<int,int> PII;
const int N=200010;
const int mod=998244353;
const int INF=0x3f3f3f3f3f3f3f3f;
void solve(){
    int n;cin>>n;
    vector<int>a(n+1);
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    int mx[n+1][n+1][7]={};int mn[n+1][n+1][7]={};
    for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)for(int k=1;k<=6;k++)
        mx[i][j][k]=-INF,mn[i][j][k]=INF;

    for(int i=1;i<=n;i++){
        mx[i][i][1]=mn[i][i][1]=a[i];
        for(int j=i+1;j<=n;j++){
            for(int k=1;k<=6;++k)mx[i][j][k]=mx[i][j-1][k],mn[i][j][k]=mn[i][j-1][k];

            mx[i][j][1]=max(a[j],mx[i][j][1]);
            mn[i][j][1]=min(a[j],mn[i][j][1]);
            
            if(mx[i][j-1][1]!=-INF)mx[i][j][2]=max(mx[i][j-1][1]-a[j],mx[i][j][2]);
            if(mn[i][j-1][1]!=INF)mn[i][j][2]=min(mn[i][j-1][1]-a[j],mn[i][j][2]);

            if(mx[i][j-1][2]!=-INF)mx[i][j][3]=max(mx[i][j-1][2]*a[j],mx[i][j][3]);
            if(mn[i][j-1][2]!=INF)mx[i][j][3]=max(mn[i][j-1][2]*a[j],mx[i][j][3]);
            if(mx[i][j-1][2]!=-INF)mn[i][j][3]=min(mx[i][j-1][2]*a[j],mn[i][j][3]);
            if(mn[i][j-1][2]!=INF)mn[i][j][3]=min(mn[i][j-1][2]*a[j],mn[i][j][3]);
            
            if(mx[i][j-1][3]!=-INF)mx[i][j][4]=max(mx[i][j-1][3]-a[j],mx[i][j][4]);
            if(mn[i][j-1][3]!=INF)mn[i][j][4]=min(mn[i][j-1][3]-a[j],mn[i][j][4]);

            if(mx[i][j-1][4]!=-INF)mx[i][j][5]=max(mx[i][j-1][4]*a[j],mx[i][j][5]);
            if(mn[i][j-1][4]!=INF)mx[i][j][5]=max(mn[i][j-1][4]*a[j],mx[i][j][5]);
            if(mx[i][j-1][4]!=-INF)mn[i][j][5]=min(mx[i][j-1][4]*a[j],mn[i][j][5]);
            if(mn[i][j-1][4]!=INF)mn[i][j][5]=min(mn[i][j-1][4]*a[j],mn[i][j][5]);
            
            if(mx[i][j-1][5]!=-INF)mx[i][j][6]=max(mx[i][j-1][5]-a[j],mx[i][j][6]);
            if(mn[i][j-1][5]!=INF)mn[i][j][6]=min(mn[i][j-1][5]-a[j],mn[i][j][6]);
        
        }
    }

    vector<int>dp(n+1);
    for(int i=1;i<=n;i++){
        dp[i]=max(dp[i-1],dp[i]);
        for(int j=i+1;j<=n;j++){
            dp[j]=max(dp[i-1]+mx[i][j][6],dp[j]);
        }
    }
    cout<<dp[n]<<endl;
}
signed main(){
    ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    int _=1;
    while(_--)solve();
    return 0;
}

注意:若不写for(int k=1;k<=6;++k)mx[i][j][k]=mx[i][j-1][k],mn[i][j][k]=mn[i][j-1][k];

只写if(mx[i][j-1][2]!=-INF)mx[i][j][3]=max(mx[i][j-1][2]*a[j],mx[i][j-1][3]);是不行的

因为if判断为false的话, mx[i][j-1][3] 这个状态就不会被考虑。

空间优化

mx[j][7]表示,在当前遍历的 i~j 中所满足的最大值

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define all(x) x.begin(),x.end()
#define no cout<<"No"<<endl
#define yes cout<<"Yes"<<endl
#define endl '\n'
// #define x first
// #define y second
typedef pair<int,int> PII;
const int N=200010;
const int mod=998244353;
const int INF=0x3f3f3f3f3f3f3f3f;
void solve(){
    int n;cin>>n;
    vector<int>a(n+1);
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    
    vector<int>dp(n+1);
    for(int i=1;i<=n;i++){

        int mx[n+1][7]={};int mn[n+1][7]={};
        for(int j=1;j<=n;j++)for(int k=1;k<=6;k++)
            mx[j][k]=-INF,mn[j][k]=INF;
        mx[i][1]=a[i],mn[i][1]=a[i];

        for(int j=i+1;j<=n;j++){
            for(int k=1;k<=6;++k)mx[j][k]=mx[j-1][k],mn[j][k]=mn[j-1][k];

            mx[j][1]=max(a[j],mx[j][1]);
            mn[j][1]=min(a[j],mn[j][1]);

            if(mx[j-1][1]!=-INF)mx[j][2]=max(mx[j-1][1]-a[j],mx[j][2]);
            if(mn[j-1][1]!=INF)mn[j][2]=min(mn[j-1][1]-a[j],mn[j][2]);

            if(mx[j-1][2]!=-INF)mx[j][3]=max(mx[j-1][2]*a[j],mx[j][3]);
            if(mn[j-1][2]!=INF)mx[j][3]=max(mn[j-1][2]*a[j],mx[j][3]);
            if(mx[j-1][2]!=-INF)mn[j][3]=min(mx[j-1][2]*a[j],mn[j][3]);
            if(mn[j-1][2]!=INF)mn[j][3]=min(mn[j-1][2]*a[j],mn[j][3]);
            
            if(mx[j-1][3]!=-INF)mx[j][4]=max(mx[j-1][3]-a[j],mx[j][4]);
            if(mn[j-1][3]!=INF)mn[j][4]=min(mn[j-1][3]-a[j],mn[j][4]);

            if(mx[j-1][4]!=-INF)mx[j][5]=max(mx[j-1][4]*a[j],mx[j][5]);
            if(mn[j-1][4]!=INF)mx[j][5]=max(mn[j-1][4]*a[j],mx[j][5]);
            if(mx[j-1][4]!=-INF)mn[j][5]=min(mx[j-1][4]*a[j],mn[j][5]);
            if(mn[j-1][4]!=INF)mn[j][5]=min(mn[j-1][4]*a[j],mn[j][5]);
            
            if(mx[j-1][5]!=-INF)mx[j][6]=max(mx[j-1][5]-a[j],mx[j][6]);
            if(mn[j-1][5]!=INF)mn[j][6]=min(mn[j-1][5]-a[j],mn[j][6]);
            
            dp[j]=max(dp[i-1]+mx[j][6],dp[j]);
        }
    }

    cout<<dp[n]<<endl;
}
signed main(){
    ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    int _=1;
    while(_--)solve();
    return 0;
}

甚至还能用滚动数组继续优化

mx[7]表示,在当前遍历的 i~j 中所满足的最大值

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define all(x) x.begin(),x.end()
#define no cout<<"No"<<endl
#define yes cout<<"Yes"<<endl
#define endl '\n'
// #define x first
// #define y second
typedef pair<int,int> PII;
const int N=200010;
const int mod=998244353;
const int INF=0x3f3f3f3f3f3f3f3f;
void solve(){
    int n;cin>>n;
    vector<int>a(n+1);
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    
    vector<int>dp(n+1);
    for(int i=1;i<=n;i++){

        vector<int>mx1(7,-INF),mn1(7,INF);
        mx1[1]=mn1[1]=a[i];

        for(int j=i+1;j<=n;j++){
            vector<int>mx=mx1,mn=mn1;

            mx[1]=max(a[j],mx[1]);
            mn[1]=min(a[j],mn[1]);

            if(mx1[1]!=-INF)mx[2]=max(mx1[1]-a[j],mx[2]);
            if(mn1[1]!=INF)mn[2]=min(mn1[1]-a[j],mn[2]);

            if(mx1[2]!=-INF)mx[3]=max(mx1[2]*a[j],mx[3]);
            if(mn1[2]!=INF)mx[3]=max(mn1[2]*a[j],mx[3]);
            if(mx1[2]!=-INF)mn[3]=min(mx1[2]*a[j],mn[3]);
            if(mn1[2]!=INF)mn[3]=min(mn1[2]*a[j],mn[3]);
            
            if(mx1[3]!=-INF)mx[4]=max(mx1[3]-a[j],mx[4]);
            if(mn1[3]!=INF)mn[4]=min(mn1[3]-a[j],mn[4]);

            if(mx1[4]!=-INF)mx[5]=max(mx1[4]*a[j],mx[5]);
            if(mn1[4]!=INF)mx[5]=max(mn1[4]*a[j],mx[5]);
            if(mx1[4]!=-INF)mn[5]=min(mx1[4]*a[j],mn[5]);
            if(mn1[4]!=INF)mn[5]=min(mn1[4]*a[j],mn[5]);
            
            if(mx1[5]!=-INF)mx[6]=max(mx1[5]-a[j],mx[6]);
            if(mn1[5]!=INF)mn[6]=min(mn1[5]-a[j],mn[6]);
            
            dp[j]=max(dp[i-1]+mx[6],dp[j]);
            
            mx1=mx;
            mn1=mn;
        }

    }

    cout<<dp[n]<<endl;
}
signed main(){
    ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    int _=1;
    while(_--)solve();
    return 0;
}

K. 方块掉落

CMOS传输门实战:如何用模拟开关优化你的电路设计(附常见问题排查) 本文深入探讨了CMOS传输门在电路设计中的实战应用与优化策略。文章从核心参数选型入手,详细分析了导通电阻、电荷注入等关键特性对电路性能的影响,并提供了多路复用器构建、精密电路应用等实战架构。同时,重点分享了PCB布局、电源去耦的工程细节,以及开关不导通、信号失真、高频性能不足等常见问题的系统性排查指南,旨在帮助硬件工程师充分发挥CMOS模拟开关的效能,提升电路设计的可靠性与精度。 阅读详情

相关推荐

VS2019配置Qt5.14.2开发环境全流程(含MSVC2017 64-bit选择指南)

本文详细介绍了在VS2019中配置Qt5.14.2开发环境的完整流程,特别针对MSVC2017 64-bit编译器的选择提供了专业建议。从环境准备、Qt安装配置到VS2019集成设置,逐步指导开发者完成开发环境的搭建,并提供了常见问题的解决方案和高级优化技巧,帮助开发者高效进行Qt开发。

weixin_29243279的博客 513

2024牛客寒假算法基础训练营4

2024牛客寒假营4【ABCDEGFHIK】

weixin_73603271的博客 1699

基于FPGA的TDC延迟链优化与码密度校准方法(1)——原理与实现

本文深入探讨了基于FPGA的时间数字转换器(TDC)延迟链非均匀性问题及其码密度校准方法。通过分析工艺偏差、温度电压影响等根源,详细介绍了码密度测试原理、逐位校准技术及气泡消除算法,并分享了自适应校准策略与多场景应用实践,有效提升TDC测量精度至皮秒级。

kiwi8的博客 488

2024牛客寒假算法基础训练营1

2024牛客寒假营1【ABCGLMEFI】

weixin_73603271的博客 1221

ASPICE1-配置管理

SUP.8配置管理 BP1:开发配置管理策略 BP2:识别配置项 BP3:建立配置项管理系统 BP4:建立分支管理 BP5:控制变更和发布 BP6: 建立基线 BP7:报告配置项状态 BP8:验证配置项信息 BP9:管理配置项和基线的存储 1.配置管理概念 配置管理(Configuration Management,CM)是通过使用技术或行政手段对软件产品进行控制,以实现对软件开发过程和生命周期进行控制、规范的一系列措施。 完整性、一致性、可控性。 2.配置管理的主要活动: 1.

HDZQ2005的专栏 3687

MS2107 CVBS转USB2.0 音视频采集芯片,支持1080P@30HZ输出

MS2107 是一款视频和音频采集芯片,支持CVBS转USB2.0 ;可以将 CVBS、S-Video 和音频信号通过 USB接口传送到 PC、智能手机和平板电脑上预览或采集。

TEL18967112838的博客 2075

2024牛客寒假算法基础集训营1(视频讲解全部题目)

2024牛客寒假算法基础集训营1(题目全解)ABCDEFGHIJKLM 2024牛客寒假算法基础集训营1(视频讲解全部题目) A #include<bits/stdc++.h> #define endl '\n' #define deb(x) cout << #x << " = " << x << '\n'; #define INF 0x3f3f3f3f using namespace std; void solve() { int n; c

Turing_Sheep的博客 1679

达芬奇Pro开发板硬件验证全流程指南

FPGA开发板硬件验证是嵌入式系统可靠性的基石,其核心在于理解SoC启动时序、IO资源映射与高速接口物理层约束。基于Xilinx Zynq-7000异构架构的开发平台,需围绕电源完整性、时钟稳定性、信号完整性及软硬协同启动链路展开分层测试。技术价值体现在规避量产失效率、支撑高可靠工业控制与实时图像处理等场景。典型应用涵盖千兆以太网通信验证、DVP摄像头与RGB LCD显示链路调试、以及SFP+光纤接口PRBS误码率测试。本文聚焦达芬奇Pro系列开发板,深入解析JTAG下载、QSPI Flash重烧录、RGM

weixin_42453228的博客 123

2024牛客寒假算法基础集训营3部分题解

2024牛客寒假算法基础集训营3

m0_51863774的博客 1566

PyCharm 接入 OpenAI Codex CLI 的 4 步配置与调试实录

揭示 Codex CLI 在 PyCharm 中上下文失稳的四大根源:CLI 启动模式与 IDE 进程模型冲突、stdin/stdout 流式处理不兼容、环境变量污染、AST 注释缺失,并给出基于 Shell 脚本桥接与结构化上下文注入的稳定接入方案。

weixin_42627902的博客 372

YOLOv13全网首发:CVPR2026 MixerCSeg | DEGConv方向引导边缘门控,破解细长裂缝检测难题

DEGConv通过方向先验嵌入、边缘增强卷积和动态门控三大机制,针对性解决了YOLO在处理裂缝类细长、多方向、低对比度目标时的特征提取不足问题,显著提升了裂缝检测的精度与鲁棒性。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 439

2024牛客寒假算法基础集训营2部分题解

2024牛客寒假算法基础集训营2

m0_51863774的博客 1691

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【补题】2024牛客寒假算法基础集训营4

链接:https://ac.nowcoder.com/acm/contest/67744每次看到博弈题就完全不想写,实际上这题非常简单。初始有nnn堆石子,结束时有∑i=1nai\sum_{i=1}^{n}{a_i}∑i=1n​ai​堆石子,每堆石子数量为1。每次操作都会把一堆石子分为两堆,所以总操作次数为∑i=1nai−n\sum_{i=1}^{n}{a_i}-n∑i=1n​ai​−n,判断操作次数的奇偶性即可。 D-守恒 思路 数组的数值可以自由分配,可分配的总数值为数组所有元素的和s=∑i=1nais

记录一个菜狗的点滴 930

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

2024牛客寒假算法基础训练营3

2024牛客寒假营3【ABDLGHMJ】

weixin_73603271的博客 1904

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

2024牛客寒假算法基础集训营4 题解( A,B,C,D,G )

根据给定的a和b,判断是否a≥k×b。

AlwaysBeShine的博客 1213

2024牛客寒假训练营1赛后补题总结(python实现 12/13)

2024牛客寒假训练营1 python题解及部分题目总结(12/13)

ChuanhuaYu的博客 2380

2024牛客寒假算法基础集训营1

2024牛客寒假算法基础集训营1

ngczx的博客 1373

2024牛客寒假算法基础训练营5

2024牛客寒假营5【ACGHILMEFJKB】

weixin_73603271的博客 927

2024牛客寒假算法基础训练营2

2024牛客寒假营2【ABEFIJKDG】

weixin_73603271的博客 1729

【补题】2024牛客寒假算法基础集训营1

bit-noob的方法生成的坐标是均匀的,利用统计,计算输入的坐标分布情况。标程考虑的是横纵坐标绝对值不超过70的坐标,应该有。的概率出现,计算输入数据中这部分坐标的出现频率,设定一个阈值用于判断即可。如此可覆盖所有情况,取价值之和最大的情况即可。这题思路是对的但是不知道为什么比赛的时候一直WA。则对于每一个物品的重量。位高的部分的子集,比第。的每一位1,假设是第。,为了使总重量不超过。

记录一个菜狗的点滴 581

【补题】2024牛客寒假算法基础集训营2

是正整数,则肯定会产生正的贡献,比绕一次路的路程长,所以最多只能绕一次路。是正整数,绕路一定会加上正的贡献,所以绕路肯定不优。,跑一遍Dijkstra即可。不知道为什么当时没做出来,图论真的菜。本质上是个最短路问题,建图的时候从点。中最小值时绕一次路路程最短,为。从小到大排序,则绕一次路路程为。考虑绕一次路的情况,假设。从小到大排序,然后枚举。

记录一个菜狗的点滴 793

2024牛客寒假算法基础集训营3

文章目录A. 智乃与瞩目狸猫、幸运水母、月宫龙虾B. 智乃的数字手串C. 智乃的前缀、后缀、回文D. chino's bubble sort and maximum subarray sum(easy version)GH. 智乃的比较函数J. 智乃的相亲活动K. 智乃的“黑红树”LM. 智乃的36倍数 A. 智乃与瞩目狸猫、幸运水母、月宫龙虾 比较首个字母是否是不区分大小写同个字母,时间复杂度O(T)O(T)O(T) #include <bits/stdc++.h> #define int l

zjdysq的博客 1760

2024牛客寒假训练营(py-DC)

​ DC两题python补题思路及代码记录,D题可以预处理+DP来做,如果想到用图论做,想到怎么建图,可以用最短路写;C题是一种带点排列组合,需要用01Trie维护信息,要会乘法逆元(好像看到一个佬用二分ac了,没看懂代码);G线段树进行区间信息维护。D-Tokitsukaze and Slash Draw_2024牛客寒假算法基础集训营2 (nowcoder.com)

ChuanhuaYu的博客 1170

2024牛客寒假算法基础集训营6

并查集,从第一个数开始,找其他元素中含有相同因子的数,如果找到则加入并查集,值得注意的是,每次找完某个因子要及时清空,不然最后一起清空的时候会超时,时间复杂度。先使一个数组有序,然后对于另一个数组中的每个元素,二分找到与它最接近的那个值,时间复杂度。数组的最大连续子串和和最小连续子串和,答案就是两两相乘中的最大值,时间复杂度。,从叶子结点开始,统计当前节点的子树权值之和,如果当前节点为红色,则进行判断。如果一个红色节点的孩子中没有白色节点,说明除了它自己以外的子树节点之和为。中的三个素数乘积,时间复杂度。

zjdysq的博客 1838

2024牛客寒假算法基础集训营6 题解 ( A,B,C,D,E,I)

找到lr区间中有多少数恰好等于三个不同素数的乘积。

AlwaysBeShine的博客 569
上一篇: 2024牛客寒假算法基础集训营3【难题详解】
下一篇: 牛客小白G-小苯的逆序对(树状数组+DP/莫比乌斯函数)
Perfect_Life_
博客等级 码龄5年 54粉丝 20原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值