南昌网络赛 Max answer(单调栈 + 线段树维护前缀和最大最小值)

告别零散脚本:用Playwright+Pytest+Yaml+Allure搭建可维护的UI自动化项目 UI自动化测试是软件质量保障的关键环节,其核心在于模拟用户操作,对Web应用界面进行功能验证。传统的脚本堆砌方式常因代码耦合度高、维护成本大而难以为继。工程化解决方案通过分离关注点,将测试逻辑、数据和配置解耦,从而显著提升项目的可读性、可维护性和可扩展性。其技术价值在于构建可持续运行的自动化资产,而非一次性脚本。典型的应用场景包括Web应用的回归测试、兼容性测试及CI/CD流水线中的质量门禁。本文以Playwright、Pytest、Yaml和Allure为核心技术栈,详细阐述了如何从项目架构、页面对象模型 阅读详情

题目链接

题意:

给一串序列,要求选任意连续的一段区间,使得这一段区间中最小值乘以区间总和尽量大。

题解:

首先先单调栈求出每个数字作为最小值所在的区间。

如果数据范围只有正数那么只用单调栈就可以解决,但是数据有负数,那么怎么高效查询使得总乘积最大的区间呢?

那么这时候我们可以用线段树维护前缀和的最大最小值,要使得负数乘以一个数尽量大,那么这个数就得尽量小。

前缀和能够 O(1) 的查询出区间的和,要使得区间和尽量小,那么对于第 i 个数字,通过线段树从 i 到 R[i] 中找到前缀和最小的,再从 L[i] 到 i - 1 中找到前缀和最大的(到 i 也行,不影响结果,还能防止 i == 0 时溢出),相减即为包含第 i 个数的最小连续区间和。

代码:

#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <string>
#include <queue>
#include <stack>
#include <vector>
#include <map>
#include <set>
#include <bitset>
using namespace std;

typedef long long ll;
#define int ll
#define INF 0x3f3f3f3f3f3f3f3f
#define MAXM 100000 + 10
#define MAXN 500000 + 10
const ll mod = 1e9 + 7;
#define P pair<int, int>
#define fir first
#define sec second

int n;
int a[MAXN], sum[MAXN];
int L[MAXN], R[MAXN];
int mintree[MAXN<<2], maxtree[MAXN<<2];

void minbuild(int l, int r, int rt)
{
    if(l == r) {
        mintree[rt] = sum[l];
        return ;
    }

    int mid = (l + r) / 2;
    minbuild(l, mid, rt << 1);
    minbuild(mid + 1, r, rt << 1 | 1);
    mintree[rt] = min(mintree[rt<<1], mintree[rt<<1|1]);
}

void maxbuild(int l, int r, int rt)
{
    if(l == r) {
        maxtree[rt] = sum[l];
        return ;
    }

    int mid = (l + r) / 2;
    maxbuild(l, mid, rt << 1);
    maxbuild(mid + 1, r, rt << 1 | 1);
    maxtree[rt] = max(maxtree[rt<<1], maxtree[rt<<1|1]);
}

int minquery(int l, int r, int rt, int L, int R)
{
    if(L <= l && r <= R) return mintree[rt];

    int ans = INF, mid = (l + r) / 2;
    if(L <= mid) ans = min(ans, minquery(l, mid, rt << 1, L, R));
    if(mid < R) ans = min(ans, minquery(mid + 1, r, rt << 1 | 1, L, R));
    return ans;
}

int maxquery(int l, int r, int rt, int L, int R)
{
    if(L <= l && r <= R) return maxtree[rt];

    int ans = -INF, mid = (l + r) / 2;
    if(L <= mid) ans = max(ans, maxquery(l, mid, rt << 1, L, R));
    if(mid < R) ans = max(ans, maxquery(mid + 1, r, rt << 1 | 1, L, R));
    return ans;
}

signed main()
{
//    ios::sync_with_stdio(false);
//    cin.tie(0); cout.tie(0);
    cin >> n;
    for(int i = 1; i <= n; i ++) cin >> a[i], sum[i] = sum[i-1] +  a[i];

    minbuild(1, n, 1);
    maxbuild(1, n, 1);
    stack<int> S;
    a[0] = a[n+1] = -INF;
    for(int i = 1; i <= n + 1; i ++) {
        while(!S.empty() && a[S.top()] > a[i]) {
            R[S.top()] = i;
            S.pop();
        }
        S.push(i);
    }
    while(!S.empty()) S.pop();
    for(int i = n; i >= 0; i --) {
        while(!S.empty() && a[S.top()] > a[i]) {
            L[S.top()] = i;
            S.pop();
        }
        S.push(i);
    }

    int ans = -INF;
    for(int i = 1; i <= n; i ++) {
        if(a[i] >= 0) {
            ans = max(ans, a[i] * (sum[R[i]-1] - sum[L[i]]));
        }
        else {

            int mq = minquery(1, n, 1, i, R[i] - 1);
            int lq = maxquery(1, n, 1, L[i] + 1, i);
            ans = max(ans, a[i] * (mq - lq));
        }
    }

    cout << ans << endl;
}

/*

老实说,
要到几岁才开始不相信圣诞老人的存在……
这类无聊的话题对我而言,
根本不痛不痒的。
不过,
讲到我从几岁起开始不相信圣诞老人就是那个穿着红衣服的老公公时,
我能确定地说,
我根本打从一开始就不相信。
我知道幼稚园圣诞节庆祝会时出现的圣诞老人是假的,
回溯记忆,
还能记起周围的幼稚园小朋友都一脸不信任地望着假扮圣诞老人的园长老师。
即使没有撞见老妈正在亲吻圣诞老公公,
机灵的我也老早就怀疑只在圣诞节工作的老爷爷是否真的存在了。
不过,
我却是过了很久以后,
才发现外星人、幽灵、妖怪、超能力者以及特摄、动画里头,
那些与邪恶组织战斗的英雄们并不存在这世上。
不,
说不定我早就发现了,
只不过一直不想承认而已。
因为,
在我的内心深处,
是十分渴望那些外星人、幽灵、妖怪、超能力者以及邪恶组织突然出现在眼前的。
和我生活的这个普通世界相比,
特摄、动画里头所描绘的世界,
反而更有魅力。
我也想活在那种世界里!
我真的好想拯救被外星人绑架并关在透明的大型豌豆夹里头的少女…
也想拿着雷射枪运用智慧与勇气击退企图改写历史的未来人…
或者光用一句咒语就收拾了恶灵跟妖怪,
再不然就是和秘密组织的超能力者进行超能力的战斗!
等等,
冷静一下,
假设我被外星人等等(以下略)那类的生物袭击,
没有任何特殊能力的我怎么可能和他们对抗?
于是,
我便如是幻想 ——
某天,
班上突然转来一个谜样的转学生,
他其实是个外星人或未来人那类的生物,
并拥有未知的能力,
后来他跟坏人战斗,
而我只要设法让自己被卷进那场战争就好了。
主要战斗的人是他,
而我则是追随他的小跟班。
啊啊,
实在太棒了,
我真是聪明啊!
要不然就是这样。
某天,
我那不可思议的力量突然觉醒,
就像隔空取物或精神念力之类的。
而且地球上其实还有很多拥有超能力的人类存在,
自然也会有一个组织专门收容这些人。
不久之后,
善良的组织便派人来迎接我。
而我也成为组织的一员共同对抗企图征服世界的邪恶超能力者。
不过,
现实却是意外地残酷。
现实的生活中,
并没有半个转学生转来我班上,
我也没看过UFO…
就算去了地方上常出现幽灵或妖怪的灵异地点也连个鬼影都没有…
花了两小时盯着桌上的铅笔,
它却连一微米都没移动…
上课时死盯着前座同学的头,
却怎么样也无法读出他在想什么。
我就这样边惊叹世界物理法则经常出现的现象,
边不停自嘲,
不知从何时起,
我就开始不看电视上的UFO特别节目或灵异节目了。
因为不可能会有那种东西……
不过后来我也成长到仅对那方面的事情存有一丝留恋的程度。
国中毕业之后,
我便从那孩提时代的梦想毕业,
逐渐习惯这个世界的平凡。
而让我还有一缕期待的一九九九年也没有发生什么事。
进入二十一世纪后,
人类依旧无法迈出月球到其他星球去。
看这情况,
在我还活着的时候,
想从地球当天往返阿尔法人马座(Alpha Cenauri)似乎是不太可能的。
我脑海中时而幻想着这些事,
终于也没啥感慨地成为高中生 —— 直到遇到了凉宫春日。
之后,
我就这么糊里糊涂地进入学区内的县立高中就读。
起初我还很后悔,
因为这座学校位于很高的山上,
就算是春天也要挥汗如雨地爬上直窜山顶的坡道,
想轻松健行的那份悠闲早已消失无踪。
一想到今后三年每天一大早都得这样爬山,
我的心情就阴郁无比。
或许是早上差点睡过头的关系,
走路的速度自然加快许多,
虽然也曾想过以后干脆早十分钟起床,
慢慢走去上学就不会这么累,
不过一想到临起床前的那十分钟睡眠是多么的宝贵,
我随即放弃了这个念头。
所以,
我相信未来的三年还是得持续这个晨间的运动。
一想到这里,
心情就更沉重了。

*/

 

EtherCAT-7 从站代码移植-SPI STM32F103 + AX58100,从站代码移植。 阅读详情

相关推荐

UCIe物理层 —— 逻辑协议 (2)

本章开始主要介绍UCIe协议第四章,物理层逻辑定义和规范。如其他的通信协议一样,接口的物理层包含两个部分,逻辑子层和电气子层。其中逻辑层主要负责:1.定义接口信号和时序2. 定义发送端如何将上层数据分发到各个物理通道以及接收端如何把从各个通道收到的数据恢复成byte stream(Flit)。3. Broken Lane的repair和remap。4. 链路初始化,训练(training)和电源状态管理/切换。5. 扰码Scrambling和training sequence的产生。

m0_47581558的博客 1477

【P4198】楼房重建(线段树维护前缀最值)

线段树维护前缀最值相关的模板题。 关键思想在于合并,[l,mid][l,mid][l,mid] 的前缀最值仍然是 [l,r][l,r][l,r] 的前缀最值,而 (mid,r](mid,r](mid,r] 中只有 ≥mxl\geq mx_l≥mxl​ 的前缀最值才是 [l,r][l,r][l,r] 的前缀最值。 而前缀最值是单调的,于是可以对于 (mid,r](mid,r](mid,r] 在线段树上二分,统计 ≥mxl\geq mx_l≥mxl​ 的前缀最值的信息和。 当信息具有可减性时,直接按原来的方法记

ez_lcw的博客 298

亿佰特E77模块(STM32WLE5CCU6)LoRa通信实战指南:从配置到应用开发

本文详细介绍了亿佰特E77模块(STM32WLE5CCU6)的LoRa通信实战指南,从硬件配置到应用开发。基于ARM Cortex-M4内核的E77模块集成了LoRa射频前端,具备超低功耗和硬件级抗干扰特性,适用于智能农业、工业现场等场景。文章提供了开发环境搭建、LoRa参数配置、实战通信及性能优化等实用技巧,帮助开发者快速掌握LoRa通信技术。

weixin_29164185的博客 760

单调栈

一、单调栈的一些特点 1、一般作为单调栈的数据结构 vector<>、stack<>、string 2、单调栈特点 (1)特点1 当前元素左侧想要找的东西,需要在该元素进栈时找到; 当前元素右侧想要找的东西,需要在之后元素进栈时获得。 当一个元素进栈时,更新它左侧想要的东西,更新栈内元素右侧想要的东西。 (2)...

weixin_41565755的博客 284

论文理解【LLM-OR】——【Step-Opt】Training LLMs for Optimization Modeling via Iterative Data Synthesis and

本文提出 Step-Opt-Instruct 方法,针对用 LLM 做 OR 问题求解任务,用迭代问题生成 + 分步验证机制实习更可靠的训练数据合成,从而微调开源 LLM 得到 Step-Opt。在多个 OR 建模基准提升性能,尤其在复杂问题上提升更明显

佚失的诗篇 803

直流电机双闭环调速系统MATLAB仿真

Chopper-Fed DC Motor Drive This example shows a Chopper-Fed DC Motor Drive. Description The DC motor is fed by the DC source through a chopper which consists of GTO thyristor and free-wheeling diode ...

飞行动力的博客 2万+

【HDU6609 Find the answer】线段树||树状数组维护前缀和

传送门 官方题解是这么说的:   对于第i个位置,怎样选择数字才会使满足条件情况下选择数字数目最少呢?很容易想到,需要选择前i1个数中较大的数字,使其变为0。   基于这个思想,如果我们对于每个位置i都暴力去找最大的前几个数,显然会TLE!   可以注意到,题目可以转化为前i-1个数中最多选出多少个数字和W[i]相加使得其和小于等于m(很容易想到,选择较小的数才会使选的数最多)。转化之后就很容...

菜的一批的SNOW的博客 398

雷达工程师避坑指南:STAP处理中,间歇采样转发干扰为什么这么难对付?

本文深入解析了STAP处理中间歇采样转发干扰(ISRJ)的挑战与应对策略。通过分析ISRJ的工作机制和自由度消耗问题,结合仿真数据对比,揭示了其与传统压制干扰的本质差异。文章还探讨了在工程实践中如何构建有效的防御体系,包括降维处理技术选择和混合架构设计,为雷达工程师提供了实用的避坑指南。

weixin_30530339的博客 267

线段树维护单调栈

单点修改,维护元素个数。 #include&amp;lt;bits/stdc++.h&amp;gt; #define ll long long using namespace std; double Max[400010]; int sum[400010]; inline int read() { char c=getchar();int x=0,flag=1; while(!isdigit(c)...

Hellsegamosken 894

ANSA二次开发在线帮助:ANSA和μETA API文档

  为了方便大家学习ANSA二次开发,我将ANSA和μETA二次开发的官方文档整合到了我的个人网站CAECoder中,大家点击ANSA和μETA API官方帮助文档进行访问即可查看。   本站也将开展对ANSA和μETA API文档的翻译工作,请大家持续关注! ANSA和μETA API文档   ANSA和μETA脚本接口是一个应用程序编程接口(API),允许开发人员访问ANSA和μETA核心功能和数据。   ANSA和μETAAPI是Python编程语言的扩展。 Python Python简.

CAECoder 4320

pnpm 卸载教程:彻底移除 pnpm 及全局缓存的方法

卸载 pnpm = 全局包 → CLI → 环境变量 → store 缓存只要按这个顺序来,基本不会留下任何坑。如果你后面还打算重新安装 pnpm / 切换 npm、yarn / 多包管理器共存,这些细节反而更重要,环境一旦干净,后续问题会少很多。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 924

【技巧】线段树维护区间单调栈

例题给出一个序列,这个序列的每个位置有两个值ai,fia_i,f_i,每次询问一个区间,把这个区间的所有数以a为关键字,从左到右做一个单调递减的栈,求这个单调栈中的元素的f值的最小值。【JZOJ 5402】【NOIP2017提高A组模拟10.8】God Knows讲解在遇到此类的问题可以用线段树来搞,先来考虑一个比较原始的方法: 设函数find(l,r,P) 表示线段树l,r这个区间,所有aia_

1930

Simulink仿真入门到精通(三) Simulink信号

本系列教程是根据孙忠潇编著的<<Simulink仿真及代码生成技术入门到精通>>学习笔记。 目录 Simulink仿真入门到精通(一) Simulink界面介绍 Simulink仿真入门到精通(二) Simulink模块 Simulink仿真入门到精通(三) Simulink信号 Simulink仿真入门到精通(四) Simulink子系统 Simulink仿真入门到精通(五) Simulink模型的仿真 Simulink仿真入门到精通(六) Simulink模型保存为图片 Sim

king110108的专栏 5395

南昌网络赛 Max answe 单调栈+线段树维护区间最大最小值

题目链接:https://nanti.jisuanke.com/t/38228 题意:求区间和*区间最小值 的最大值 题解:先单调栈求一下以每个位置为最小值的左右到哪,线段树维护下前缀的最大最小值,然后当前值为正值时,就让可选区间范围内区间的值最大,右边取个最大,左边取个最小,当前值为负数时,让可选区间的值最小,左边取个最小,右边取个最大 #include<bits/stdc++.h...

还我笑颜 611

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

深度学习工具包 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")

南昌网络赛I.Max answer(单调栈+线段树)

I. Max answer Alice has a magic array. She suggests that the value of a interval is equal to the sum of the values in the interval, multiplied by the smallest value in the interval. Now she is plannin...

Sclong0218的博客 253

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

2019南昌网络邀请赛 Max answer (单调栈)

Max answer 问答问题反馈 只看题面 11.63% 3000ms 262144K Alice has a magic array. She suggests that the value of a interval is equal to the sum of the values in the interval, multiplied by the smallest va...

1999 285

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

南昌网络赛 I 题,max answer(单调栈 + 线段树)

max answer Alice has a magic array. She suggests that the value of a interval is equal to the sum of the values in the interval, multiplied by the smallest value in the interval. Now she is planning...

Error Man 的博客 409

2019南昌网络邀请赛-I-Max Answer-线段树(RMQ)+ 单调栈

思路: 先用单调栈算出每个a[i]可以作为区间最小值的区间的最左边和最右边。 如果a[i] > 0的话,直接整个区间的值都要,因为最小值为正数的区间的数全>0; 如果a[i] < 0 的话,可以从点前位置,可以向左向右暴力搜索最小值。(数据有点水,所以可以过)。 更好的做法是用线段树求维护每个点左边和,右边和的最大值。 但是线段树是用来求解 解可以进行区间合并的,最常见的就是区...

我们花时间收集,却忘了最重要的其实是花时间去消化 491

南昌邀请赛 - I Max answer(单调栈 + 线段树)

题面: 这题如果a[i] > 0,则是一道经典的单调栈,如果针对a[i]大于0的情况不太清楚的话,可以参考我写的单调栈其他的题目,现在我们重点来讨论a[i] < 0的情况。 如果a[i]小于零,则应该使得包含a[i]的区间和最小,即找到1~i区间上最大的前缀和lmax,和i-n区间上最小的前缀和rmin,然后两者相减得到最小的区间前缀和,很容易联想到用线段树来维护区间前缀的最值,这是...

weixin_43533544的博客 252

南昌网络赛 Max answer(单调栈)

题意:给你n个数,让你找到数组中区间的最大价值,区间价值定义为区间的最小值*区间的数字加和 思路:用单调栈处理出左右l,r.然后用线段树或者st维护区间的最值,如果a[i]<0就左侧min,右侧max,大于0就反一下,(为什么比赛的时候一直不过啊) 代码: #include <bits/stdc++.h> using namespace std; typedef l...

weixin_30342827的博客 79

[JZOJ6223] 互膜 【线段树】【单调栈】【DP】

Description Solution 我们可以设一个朴素的DP 记f[i][0/1]f[i][0/1]f[i][0/1]表示第i−1i-1i−1轮上一个人是否操作了i这个位置,当前先手-当前后手的权值的最大值。 显然Ans=Sum+f[1][0]Ans=Sum+f[1][0]Ans=Sum+f[1][0] 容易得到转移f[i][0]=−f[i+1][1]+s[i]f[i][0]=-f[i+1...

Never give in. 325

[HNOIAHOI2018] 转盘(线段树维护单调栈)

我丢~

523

线段树——通过维护区间前缀和后缀的到最终结果类的题目

第一次看这道题的时候,我根本就没有想到该如何用线段树去解决这道问题,想用动态规划,但是一直在修改如果每次都进行一次动态规划,那么时间必然会超限的,然后我这个蒟蒻就在题解区里看到了大犇的写法,只能用巧妙来形容。思路:我们在线段树里,用sum去统计这个区间内01序列的最长长度,lsum去表示前缀01序列的最长长度,rsum表示后缀01序列的最长长度。,即a[mid]==a[mid+1],那么sum必然就是左区间的最长前缀或者右区间的最长后缀。然后我们需要分析,对于sum来说。

2301_80475191的博客 580

【Nowcoder】登顶 | 线段树 、单调栈

题目链接:https://ac.nowcoder.com/acm/problem/208150 题目大意: 求出所有区间的最大值*最小值的和 题目思路: 有一个比较经典的思路 有一个相似的思路:(待补) 枚举所有的结束节点 1~n 用线段树维护 从i到当前枚举的结束节点的 最大值*最小值 假设当前枚举位置是 pos: 那么节点1 维护的 即为 1~pos的区间最大值*最小值 节点2维护2~pos的最大值*最小值 也就是说 整个过程 我们每次会多一个起点,之前的区间会向右扩充一个数 可.

一只酷酷光儿的博客 473

小白逛公园 线段树维护 最大前缀和,后缀和

luogu -区间求最大和 线段树维护 最大前缀和,后缀和 P4513 小白逛公园 提交 2.71k 通过 874 时间限制 1.00s 内存限制 128.00MB 题目提供者 huhao 难度 省选/NOI- 历史分数 100 提交记录 查看题解 标签 相关讨论 进入讨论版 推荐题目 展开 题目背景 小新经常陪小白去公园玩,也就是所谓的遛狗啦… 题目描述 在小新家附近有一条“公园路”,路的一...

Up Panda 691

洛谷1714线段树加前缀和

题目传送门:https://www.luogu.org/problemnew/show/P1714 题意很简单,在一段长度为n的序列里找出长度小于k的一段连续序列的最大值,是线段树无疑了。但是假如写一个求区间和的线段树你的复杂度大概为o(n^2logn),你要研究(1,k),(1,k-1)……(1,1,)中的最大值然后将以上操作重复n遍(严格来说没有n遍因为从n出发后只有(n,n),但无伤大雅,...

qq_40892508的博客 893
上一篇: Codeforces Gym - 101808K(倍增LCA最近公共祖先)
下一篇: 洛谷 P2765 魔术球问题 (网络流 + 思维)
ttoobne
博客等级 码龄9年 13粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值