USACO 6.3.1 Fence Rails 01多背包问题(BS+IDDFS)

RAG中的Chunking实战:语义单元封装与15种工程化切分技术 在检索增强生成(RAG)系统中,chunking并非简单的文本分段,而是面向语义完整性、上下文锚定与检索友好性的关键预处理环节。其核心原理在于将原始文档转化为具备命题结构、可追溯元信息和向量表征鲁棒性的语义单元。技术价值体现在显著提升recall@5与QA准确率,避免因切分失当导致的关键条件断裂、术语割裂或逻辑链丢失。典型应用场景覆盖法律条款解析、技术文档问答、医疗指南检索及多模态手册理解等。本文聚焦RAG落地中最易被低估却影响最大的chunking工程实践,系统梳理15种可组合、可嵌套的切分策略,并深度结 阅读详情

http://train.usaco.org/usacoprob2?a=NaWWtjt80VA&S=fence8

题目大意:有N(1-50)块原木,要切成R(1-1023)块长度(1-128)可重复的木板,并不一定所有的木板都能被切出来,求能够交货的最大木板数量


错误想法:我一开始正着想觉得有种网络流的感觉,把每个原木看作一个有限容量的节点,和每个木板结点以无限容量的管道连接,木板结点在和汇点以容量为一的管道连接,然后求最大流。但是发现有两个问题:①木板结点必须被充满才可以被计数 ②多个原木结点不能流入同一个木板结点(不能拼接) 感觉这样一来网络流的特性都不对了,于是我放弃了思考!去看了官方提示


题目模型:

原来是需要反着思考,不是用原木去切木板,而是用木板去填充原木,这样一来就成了01多背包问题,但是没学过啊这种高级的背包,我依稀记得大主教有在数据结构习题课上教过用堆实现的方法,但是我在网上没有查到去群里问也没人告诉我,所以我只好老老实实地去想提示中说的IDDFS+剪枝的方法。

※关于IDDFS(iterative deepening depth-first search)可参考维基百科:感觉上就是带有额外迭代参数的DFS

看了这个之后我就想不明白了,因为这个额外的深度参数我不知道他有什么用,因为我们要找的是最多的木板数量,而且某一深度的DFS结果并不能给后来的DFS提供信息,不管怎么样这个迭代参数都要运行到最大。其实我一开始连这个参数该怎么搞应该代表什么都不明白,知道他代表木板数还是看了别人的题解之后  

于是我放弃了思考


整体思路:

参考链接:https://www.cnblogs.com/albert7xie/p/5733061.html

看了别人的题解我才明白了,我忽视了一个隐藏的性质,那就是最优解k必然可以用最小的k根木板满足,而这是显然的,如此一来,我们只要将木板排序,他就具有了二分性(前k小的木板能否全满足),二分的做法就类似于之前在数据结构课的作业里做过的跳石头一样

这样也同时解决了我对于IDDFS中迭代参数的问题,这个迭代参数代表了当前DFS的搜索深度,他不一定是线性增加的,它可以随便怎么搞其实,他只是反应了当前尝试的解的一个性质,所以这个IDDFS其实可以分解成ID+DFS,ID就是迭代参数可以描述解的优劣性(是我们选择解的条件),DFS是搜索过程,判断当前参数描述的解是否存在,之所以是DFS是因为每一个决策的分支太多,BFS做不了

※当然这里的二分是左开右闭的(小于等于lo的解是可行的,大于hi的解是不可行的),因此在确定mid的时候要加一(至于什么时候要加一,我个人的判断方法是要保证每次迭代之后待搜索范围都必须缩小,因为通过判断在移动边界时两个边界的异动情况可以确定)


剪枝操作:

当然这道题还没有结束,提示里都讲了要剪枝那么裸的DFS当然不可能过,到这里我已经连思考的动力都没有了,直接看了别人的题解(还想了很久才理解,淦)。一共有三种主要的剪枝操作:

①原木由大到小排序,由大到小尝试

②当下一块木板与当前木板大小相同时,从当前尝试到的原木开始尝试

③记录原木无效长度(剩余长度小于最小的木板,属于边角料)总和,当大于应当剩余长度(原木总长减去当前二分条件下木板长度总和)时,当前搜索无解

操作原理:

关于①:emmm不知道为什么,反正肯定不会影响答案的正确性,而且要改的话代码要改比较多我就没实验

关于②:很容易理解(呸,明明自己一开始想都想不明白),因为两块木板长度相同,所以在排序的时候谁在前谁在后其实都无所谓,如果下一块木板还是从头开始尝试的话它的搜索与当前木板之前已经做过的搜索是等价的,而搜索的次序已经表明了这些搜索是无效的。而且我还以为这只是追求0.00的优化,没想到如果没有这个处理竟然会超时


关于③:很明显(呸),在迭代参数确定的情况下所采用的木板的长度是固定的,因此其剩余的原木的长度也是固定的,当无效长度大于剩余长度时,解显然是不存在的(这个剪枝在采用的木板总长相比原木长度较长时比较实用)。当然,不用这个剪枝会超时,但是不像原博主说的是个强力剪枝,因为能苟过的点比上一个还多仅仅一个



概括下来就是:用二分的方法枚举描述解的参数,用DFS判断当前解是否可行,而参数和解的可行性是满足二分性的

代码如下:

/*
ID: frontie1
TASK: fence8
LANG: C++
*/
#include <iostream>
#include <cstdio>
#include <algorithm>

using namespace std;

int N, R;
int wood[55], need[1025];
int tot = 0, space;
int sum[1024];
int mid; //used both in DFS() and BS()

bool DFS(int dep, int pos)
{
    if(dep == 0) return true;
    if(space > tot-sum[mid]) return false; //too much space wasted
    for(int i = pos; i <= N; ++i){
        if(wood[i] >= need[dep]){
            wood[i] -= need[dep];
            if(wood[i] < need[1]) space += wood[i];
            bool flag = false;
            if(need[dep-1] == need[dep]) flag = DFS(dep-1, i);
            else flag = DFS(dep-1, 1);
            //backtrack, mind the order!
            if(wood[i] < need[1]) space -= wood[i];
            wood[i] += need[dep];
            if(flag) return true;
        }
    }
    return false;
}

int BS(int lo, int hi)
{
    while(lo < hi){
        mid = ((lo+hi) >> 1)+1;
        space = 0;  //each time initiate
        if(DFS(mid, 1)) lo = mid;
        else hi = mid-1;
    }
    return lo;
}

bool cmp(int a, int b)
{
    return (a > b);
}

int main()
{
    freopen("fence8.in", "r", stdin);
    freopen("fence8.out", "w", stdout);

    cin >> N;
    for(int i = 1; i <= N; ++i){
        cin >> wood[i];
        tot += wood[i];
    }
    cin >> R;
    for(int i = 1; i <= R; ++i){
        cin >> need[i];
    }
    sort(wood+1, wood+N+1,cmp);
    sort(need+1, need+R+1);

    for(int i = 1; i <= R; ++i){
        sum[i] = sum[i-1] + need[i];
    }

    cout << BS(0, R) << endl;

    return 0;
}


注意:除了上面的思路外,我一开始写回溯的时候还颠倒了次序(导致样例输出了6),这种细节问题还是太不小心了

还有一点:原来sort的两个参数是左闭右开的,淦


面板数据分析中的随机前沿软件FRONTIER Version 4.1应用 随机前沿模型是一种用于评估单位效率的统计方法。它考虑了输入和输出的随机性,允许我们在效率评估中引入不确定性。随机前沿模型通常用于评估生产单位、金融机构、医院等各种类型的决策单元的效率。FRONTIER是一个广泛使用的随机前沿分析软件,具有用户友好的界面和强大的功能。它提供了估计效率、前沿分析和模型比较的工具,使用户能够深入研究单位的效率和绩效。面板数据是一种包含多个单位(通常是时间序列数据)的数据类型,可以用于分析单位在不同时间点的变化和效率。 阅读详情

相关推荐

随机前沿软件FRONTIER Version4.1在面板数据中的应用

随机前沿面软件FRONTIER Version4.1 设置为零,进行Grid搜索。 3)DFP QN算法得到最后的极大似然估计值。 格点搜索:以 值作为搜索参数空间,格点为0.1,可以在FRONT41.00中进行调整。迭代优化参数也可以在FRONT41.00中调整。 FRONTIER Version4.1可以估计CD函数和超越对数生产函数。 1)CD生产函数,截面数据,半正态分布; 2)超...

wjyxld的博客 9099

[USACO]Fence Rails

Fence RailsBurch, Kolstad, and SchrijversFarmer John is trying to erect a fence around part of his field. He has decided on the shape of the fence and has even already installed the posts, but he's ha...

weixin_30919235的博客 282

FRONTIER4.1

DEA FRONTIER 4.1软件以及操作指南

USACO 6.3 Fence Rails(一道纯剪枝应用)

Fence RailsBurch, Kolstad, and Schrijvers Farmer John is trying to erect a fence around part of his field. He has decided on the shape of the fence and has even already installed the posts, but ...

weixin_30291791的博客 208

FRONTIER4.1--随机前沿分析

FRONTIER4.1--随机前沿分析-SFA

Frontier4.1软件用法 ppt 教学视频集合.rar

Frontier是一款专门用于完成随机前沿分析的软件,它可以用最大似然法估计随机前沿成本模型(Stochastic Frontier Cost Model)和随机前沿生产模型(Stochastic Frontier Production Model)。本文主要介绍SFA的专用分析工具 Frontier4.1的大致用法。主要来自英文的说明,以方便读者

usaco 4.1 Fence Rails 剪枝

 多维背包问题,不能用dp,因为n 1)对rail和board排序,对于不同长度的rail,一定是取长度小的rail比较划算,所以我们取前k个rail处理这里 sum(rail,k) sum(board) 2)充分利用题目条件:因为每个rail最长只有128,而rail可能会有1000,所以肯定有很多rail的长度相等,对于这些rail,我们只需要枚举一个下界即可,这样可以免去很多重

Ben的专栏 1267

DEA FRONTIER 4.1操作说明及软件

数据包络分析软件 Save money by identifying efficiency improvements 实时的效率分析 使用Frontier Analyst可以增加生产效能的获利,它提供您了解如何管理您的营业单位和改进效能,Frontier Analyst使用一种被称为 “数据包络分析” (Data Envelopment Analysis, DEA) 的方法,有时被称为比较性能的评价或同侪本位分析(peer based analysis),去分析有相似功能商业单位的相对性能,而非只是单纯的财物标准分析。 Frontier Analyst 现今运用在很多营业机构里,范围从小型企业到跨国际企业,包含零售商、总经销商、银行、公家机关和医疗诊所等等以商业为基础的企业。

【免费下载】 DEA FRONTIER 4.1 软件及操作指南

DEA FRONTIER 4.1 软件及操作指南 【下载地址】DEAFRONTIER4.1软件及操作指南 本仓库提供DEA FRONTIER 4.1软件及其操作指南的下载资源。DEA FRONTIER 4.1是一款用于数据包络分析(Data Envelopment Analysis, DEA)的强大工具,广泛应用于效率评...

gitblog_09716的博客 2393

千兆以太网的接收和crc校验

解析该以太网帧,包括统计该以太网帧长度+过滤功能(端口号对不对,是否为udp协议)+CRC校验,将解析结果存入状态fifo,一旦状态fifo开始有数,就开始开启读过程,读过程开始时,首先读状态fifo,根据从状态fifo里面读出的以太网帧长度,来读数据fifo(这样能够防止跨帧读),然后在根据状态fifo里面读出的crc校验正确标志和过滤标志,来确定是否将数据fifo读出来的数据送给下一个模块。改掉之后在抓一下,可以看到抓出来的数据完全正确,从最后开始看,除去4个crc校验的尾巴,数据是到255结束的。

weixin_45284871的博客 2739

Mplus—随机截距交叉滞后模型(Random Intercepts Cross-Lagged Panel Model, RI-CLPM)

介绍随机截距交叉滞后模型(Random Intercepts Cross-Lagged Panel Model, RI-CLPM)的相关知识,例如模型内容、Mplus语法及对应网址等。

m0_54401011的博客 9533

【免费下载】 DEA FRONTIER 4.1:数据包络分析的强大工具

DEA FRONTIER 4.1:数据包络分析的强大工具 【下载地址】DEAFRONTIER4.1软件及操作指南 本仓库提供DEA FRONTIER 4.1软件及其操作指南的下载资源。DEA FRONTIER 4.1是一款用于数据包络分析(Data Envelopment Analysis, DEA)的强大工具,广泛应用...

gitblog_09765的博客 992

[原创]Linux 802.11n CSI tool Monitor模式

Linux 802.11n CSI tool Monitor模式 使用AP模式的缺陷在于ping 命令速度比较慢,且不能精确控制发送的参数,比如接收的包数量是不可控的。Monitor模式可以调制发送速率、发包数量、发送天线个数、HT模式、short/long guard interval等等,因此调通Monitor模式是必须的。期间参考了博主沃一德的CSI Tool安装使用讲解,对他的工作表示感...

u014645508的博客 1万+

【亲测免费】 DEA FRONTIER 4.1操作说明及软件

DEA FRONTIER 4.1操作说明及软件 去发现同类优质开源项目:https://gitcode.com/ 欢迎使用DEA FRONTIER 4.1操作说明及软件资源包。本资源包致力于帮助用户通过数据包络分析方法(Data Envelopment Analysis,简称DEA),实现企业效率的实时分析与优化。 资源描述 本资源包含的DEA FRONTIER 4.1软件及操作说明,旨在帮助用户...

gitblog_06744的博客 474

【无人机对抗】基于matlab无人机红蓝对抗仿真【含Matlab源码 4436期】

无人机红蓝对抗仿真 完整代码,包运行;可提供运行操作视频!适合小白!

Matlab3024528700的博客 1379

量子计算入门指南:密度算符的核心概念与应用解析

本文深入解析了量子计算中密度算符的核心概念与应用。作为描述量子系统“状态的状态”的关键数学工具,密度算符能有效处理混合态与子系统描述,是理解量子噪声、量子纠错和开放系统演化的基石。文章通过对比纯态与混合态,阐释了密度矩阵的数学定义与物理意义,并结合代码示例演示了其在实际量子计算问题中的强大威力。

day7的博客 469

【亲测免费】 Frontier4.1软件用法PPT教学视频集合

Frontier4.1软件用法PPT教学视频集合 去发现同类优质开源项目:https://gitcode.com/ 此压缩文件包含了一系列Frontier4.1软件用法的教学视频,以PPT形式展现。Frontier软件被广泛应用于随机前沿分析(Stochastic Frontier Analysis, SFA),它能够帮助用户使用最大似然法估计随机前沿成本模型(Stochastic Frontie...

gitblog_06747的博客 451

CMCC-IPC-A410串口刷机救砖教程

《CMCC-IPC-A410摄像头串口刷机指南》摘要 本指南针对2018年前老款CMCC-IPC-A410摄像头变砖/升级失败的情况,提供串口刷机方案。需准备CH340G串口模块、杜邦线、海康V5.5.82固件等工具。操作包含硬件连接(TX/RX交叉接线)、115200波特率终端配置、CTRL+U进入刷机模式,通过UPF格式化、tftp传输固件、update写入等步骤完成修复。刷机后设备恢复未激活状态,需重置密码,原定制功能可能失效。整个过程需稳定供电,耗时约15-20分钟,注意此操作将使原厂保修失效。(1

海康威视技术支持 1846

Frontier4.1简介

Frontier 是一款专门用于完成随机前沿分析的软件,它可以用最大似然法估计随机前沿成本模型(Stochastic Frontier Cost Model) 和随机前沿生产模型(Stochastic Frontier Production Model)。  在这里,我们主要简单介绍一下Frontier的使用方法,暂时不对随机前沿这个方法做详细的展开。  程序解包后,最主要的是4个文件,F

塔里木博客 1万+

面试真题集(十六):TensorRT基础

TensorRT面试真题解析:从模型优化到推理部署 本文精选了14道TensorRT面试题,涵盖选择题、简答题和场景题,深度考察推理工程师对TensorRT核心技术的理解。内容聚焦三个关键维度: 基础概念 FP16推理中Softmax层为何需保持FP32(数值稳定性) INT8校准原理(EntropyCalibrator2的鲁棒性优势) Plugin V3接口的构建/运行分离设计 性能优化 Conv-BN-ReLU融合减少40-60%延迟的关键机制(访存优化) 动态Shape配置策略(min/opt/max

PeterPan的博客 71

一文吃透 OData Deep Insert:从框架原理到 ABAP 实战

本文面向ABAP工程师,解析OData服务中的Deep Insert技术。文章首先阐述Deep Insert的业务背景,说明其适用于父子层级数据必须成组创建的场景(如销售订单与行项目)。随后深入框架实现机制,介绍SAP Gateway如何通过CREATE_DEEP_ENTITY方法处理嵌套请求,并强调开发者的责任边界。通过销售订单案例,文章对比了Deep Insert与$batch的适用场景差异,提供请求负载示例和DPC_EXT实现骨架代码。最后给出MPC_EXT声明深结构的三种套路,以及事务处理和错误处理

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 225

FRONTIER4.1--随机前沿分析资源文件介绍

FRONTIER4.1--随机前沿分析资源文件介绍 去发现同类优质开源项目:https://gitcode.com/ FRONTIER4.1是随机前沿分析领域的强大工具,专注于经济效率研究。 项目介绍 FRONTIER4.1随机前沿分析资源文件下载仓库,为研究者和经济分析专业人士提供了一站式的工具支持。这个项目旨在帮助用户轻松开展随机前沿分析,解决生产效率、成本效益等经济问题。通过该仓库,用户可以...

gitblog_06704的博客 516

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

USACO 4.1 Fence Rails (fence8)

/* 既然要装下尽可能多的物品,那么就应该先选入小的物品。所以,先把物品按照重量递增排序。那么: 1)如果前k物品不能装入背包,那么即使把其中一个物品P换成k+1~R中的一个物品Q, 由于Q的重量大于P,因此也绝对不可能成功装入背包。 2)如果前k个物品可以装入背包,那么前k-1个物品也一定能装入背包。 3)如果前k个物品不能装入背包,那么前k+1个物品也一定不能装入背包。 这样,一个最值问

Hello World! 2239

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

深度学习工具包 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&#39;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(&#39;DeepLearnToolbox&#39;));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(&#39;state&#39;,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&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,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 = &#39;sigm&#39;;%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, &#39;Too big error&#39;);```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(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;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)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;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, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% 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&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 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, &#39;Too big error&#39;);```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(&#39;state&#39;,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, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,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, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,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, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % 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, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % 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, &#39;Too big error&#39;);%% 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(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % 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, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

usaco6.3.1 Fence Rails

一 原题 Fence Rails Burch, Kolstad, and Schrijvers Farmer John is trying to erect a fence around part of his field. He has decided on the shape of the fence and has even already installed the posts,

max_kibble的博客 322

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

背包问题详解(01背包,完全背包,多重背包,分组背包)

有 N 件物品和一个容量是 V的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。 输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。输出格式输出一个整数,表示最大价值。数据范围0

走在努力路上的自己的博客 6万+
上一篇: USACO 6.2.3 Shaping Regions
下一篇: USACO 6.3.2 Cryptcowgraphy 剪枝
Frontier_Setter
博客等级 码龄10年 2粉丝 123原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值