CSP-J 2019复赛真题解析

2019CSP-J复赛题解—编程系列(八) 2019普及组四道题梯度等级明显,第一题属于没有难度,只要掌握基本的字符串应用基本上都是一次性就能AC。第二题开始有点难度,思路基本都没问题,但没有一次性AC,调试了移动框。 第三题难度系数明显,难度适中,考虑股票复投的处理就可以。 第四题推导有难度,需要熟练掌握算法模板,能抽象出奇偶性质,建图和宽搜代码要能分分搞定,否则时间上会很匆忙。 2019CSPJ01.数字游戏(★) 考查:字符串的基... 阅读详情
AI摘要

文章介绍了两个编程问题,第一个是关于处理01字符串,计算其中字符1的数量,提供了两种简单的C++解决方案。第二个问题涉及公交换乘优惠策略,需要计算乘客的总花费,考虑了优惠票的有效期和使用规则。这两个问题均属于算法和逻辑推理的范畴。

[CSP-J2019] A.数字游戏

题目描述

小 K 同学向小 P 同学发送了一个长度为 888 的 01 字符串来玩数字游戏,小 P 同学想要知道字符串中究竟有多少个 111。
注意:01 字符串为每一个字符是 000 或者 111 的字符串,如“101”(不含双引号)为一个长度为 333 的 01 字符串。

输入格式

输入文件只有一行,一个长度为 888 的 01 字符串 sss。

输出格式

输出文件只有一行,包含一个整数,即 01 字符串中字符 1\bm 11 的个数。

样例 #1

样例输入 #1
00010100
样例输出 #1
2

样例 #2

样例输入 #2
11111111
样例输出 #2
8

提示

【输入输出样例 1 说明】

该 01 字符串中有 222 个字符 111。

【输入输出样例 2 说明】

该 01 字符串中有 888 个字符 111。

【数据规模与约定】

  • 对于 20%20\%20% 的数据,保证输入的字符全部为 000。
  • 对于 100%100\%100% 的数据,输入只可能包含字符 000 和字符 111,字符串长度固定为 888。
方法一:

如果是熟练掌握了C++的字符串之后,那这题还是非常简单的,定义字符串S,然后遍历即可,这里使用字符串函数length,可以查询到字符串的长度,当然题目固定了长度也可以直接写8 ,然后判断每一位是不是为‘1’。

#include<iostream>
using namespace std;
string s;
int ans;
int main()
{
	cin>>s;
	for(int i=0;i<s.length();i++){
		if(s[i]=='1') ans++//统计字符串个数
	}
	cout<<ans<<endl;
	return 0;
}
方法二:

只会循环和定义也可以做出这题,定义一个字符a之后,进行循环遍历,题目给出长度为8,所以循环的次数也是八,然后每次循环进行输入赋值,赋值完了之后,判断计数即可。

#include<bits/stdc++.h>
using namespace std;
int main()
{
	char a;
    int RP=0;
    for(int i=1;i<=8;i++)
    {
        cin>>a;
        if(a=='1')RP++;
    }
    cout<<RP;
    return 0;
}
A题还是非常简单的,属于大水题了

[CSP-J 2019] 公交换乘

题目描述

著名旅游城市 B 市为了鼓励大家采用公共交通方式出行,推出了一种地铁换乘公交车的优惠方案:

  1. 在搭乘一次地铁后可以获得一张优惠票,有效期为 45 分钟,在有效期内可以消耗这张优惠票,免费搭乘一次票价不超过地铁票价的公交车。在有效期内指开始乘公交车的时间与开始乘地铁的时间之差小于等于 45 分钟,即:
    tbus−tsubway≤45t_{bus} - t_{subway} \leq 45tbus​−tsubway​≤45
  2. 搭乘地铁获得的优惠票可以累积,即可以连续搭乘若干次地铁后再连续使用优惠票搭乘公交车。
  3. 搭乘公交车时,如果可以使用优惠票一定会使用优惠票;如果有多张优惠票满足条件,则优先消耗获得最早的优惠票。
    现在你得到了小轩最近的公共交通出行记录,你能帮他算算他的花费吗?

输入格式

输入文件的第一行包含一个正整数 nnn,代表乘车记录的数量。
接下来的 nnn 行,每行包含 3 个整数,相邻两数之间以一个空格分隔。第 iii 行的第 1 个整数代表第 iii 条记录乘坐的交通工具,0 代表地铁,1 代表公交车;第 2 个整数代表第 iii 条记录乘车的票价 priceiprice_ipricei​ ;第三个整数代表第 iii 条记录开始乘车的时间 tit_iti​(距 0 时刻的分钟数)。
我们保证出行记录是按照开始乘车的时间顺序给出的,且不会有两次乘车记录出现在同一分钟。

输出格式

输出文件有一行,包含一个正整数,代表小轩出行的总花费。

样例 #1

样例输入 #1
6
0 10 3
1 5 46
0 12 50
1 3 96
0 5 110
1 6 135
样例输出 #1
36

样例 #2

样例输入 #2
6
0 5 1
0 20 16
0 7 23
1 18 31
1 4 38
1 7 68
样例输出 #2
32

提示

【输入输出样例 1 说明】
第一条记录,在第 3 分钟花费 10 元乘坐地铁。
第二条记录,在第 46 分钟乘坐公交车,可以使用第一条记录中乘坐地铁获得的优惠票,因此没有花费。
第三条记录,在第 50 分种花费 12 元乘坐地铁。
第四条记录,在第 96 分钟乘坐公交车,由于距离第三条记录中乘坐地铁已超过 45 分钟,所以优惠票已失效,花费 3 元乘坐公交车。
第五条记录,在第 110 分钟花费 5 元乘坐地铁。
第六条记录,在第 135 分钟乘坐公交车,由于此时手中只有第五条记录中乘坐地铁获得的优惠票有效,而本次公交车的票价为 6 元,高于第五条记录中地铁的票价 5 元,所以不能使用优惠票,花费 6 元乘坐公交车。
总共花费 36 元。

【输入输出样例 2 说明】
第一条记录,在第 1 分钟花费 5 元乘坐地铁。
第二条记录,在第 16 分钟花费 20 元乘坐地铁。
第三条记录,在第 23 分钟花费 7 元乘坐地铁。
第四条记录,在第 31 分钟乘坐公交车,此时只有第二条记录中乘坐的地铁票价高于本次公交车票价,所以使用第二条记录中乘坐地铁获得的优惠票。
第五条记录,在第 38 分钟乘坐公交车,此时第一条和第三条记录中乘坐地铁获得的优惠票都可以使用,使用获得最早的优惠票,即第一条记录中乘坐地铁获得的优惠票。
第六条记录,在第 68 分钟乘坐公交车,使用第三条记录中乘坐地铁获得的优惠票。
总共花费 32 元。

【数据规模与约定】

对于 30%30\%30% 的数据,n≤1000n \leq 1000n≤1000,ti≤106t_i \leq 10^6ti​≤106。

另有 15%15\%15% 的数据,ti≤107t_i \leq 10^7ti​≤107,priceiprice_ipricei​ 都相等。

另有 15%15\%15% 的数据,ti≤109t_i \leq 10^9ti​≤109,priceiprice_ipricei​ 都相等。

对于 100%100\%100% 的数据,n≤105n \leq 10^5n≤105,ti≤109t_i \leq 10^9ti​≤109,1≤pricei≤10001 \leq price_i \leq 10001≤pricei​≤1000。

方法一:

①:看完题目后,应该还是会有一个比较清晰的思路的,也可以发现是个不那么困难的模拟题,而体重优惠卷的产生都来自车票本身,因为是在搭乘一次地铁后可以获得一张优惠票,所以我们可以把每张票的所有信息和优惠卷的信息四个信息存在一起,因此需要用一个结构体来存。
②:然后考虑复杂度的问题,极限数据上会乘坐10510^5105次,如果每次都进行查找是否有优惠卷可以使用,不优化的话,复杂度是O(n2)O(n^2)O(n2),所以需要进行优化,注意优惠卷使用期限是时间之差小于等于 45 分钟,所以循环查找的时候,如果时间之差大于45分钟直接break跳出,不再查找,就不会超时了,具体可以看代码。

#include<bits/stdc++.h>
using namespace std;
#define int long long 
const int maxn=2e5+100;
struct node
{
    int t;   //票的时间
    int k;	 //票的种类 
    int f;   //票是否使用过
    int p;   //票的价格
} mo[maxn];
signed main()
{
    int n,i,t,j,time,price,cnt1=0,cnt2=0;
    int ans=0;
    cin>>n;
    for(i=0; i<n; i++)
    {
        cin>>j>>price>>time;
        mo[i].k=j;
        mo[i].p=price;
        mo[i].t=time;
    }
    for(i=0; i<n; i++)
    {
        if(mo[i].k==1)
        {
            if(mo[i].f==0) ans+=mo[i].p;
            continue;
        }
        for(j=i+1; j<n; j++)
        {
            if(mo[j].t-mo[i].t>45)
            {
                break;
            }
            else
            {
                if(mo[j].f==0 && mo[j].k==1 && mo[j].p<=mo[i].p)
                {
                    mo[j].f=1;
                    break;
                }
            }
        }
        ans+=mo[i].p;
    }
    cout<<ans<<endl;
    return 0;
}
CSP-J 2019复赛分析 【CSP-J 2019 】复赛分析 前言(????) 总的来说,这次复赛感觉考的很不满意,至于原因,感慨万分!关键是:期中考试了!偏偏是这个时候! - 由于我是一个初二的蒟蒻,所以考试前先定了一个目标:前两道题AC(可是现实与想象就是差INF),后两道题写个AC自动机或随机数什么的,不然就打暴力骗点分什么的。怀着这样美好的心情出发。 - 我自我感觉良好—— AK IOI DAY -4 坐... 阅读详情

相关推荐

CSP-J 2019 第二轮 复赛简单解析

第一题:数字游戏,签到题 #include <iostream> #include <cstdio> using namespace std; int main() { freopen("number.in", "r", stdin); freopen("number.out", "w", stdout); string s; ci...

KQZXCMH的博客 8126

2019 CSP-J 真题 题目、答案以及解析

有没有大佬讲讲阅读程序最后一题的倒数第二问?蒟蒻我看不懂😭😭😭😭😭😭😭😭😭😭。...

studentWheat的博客 1万+

2023年CSP-J复赛真题解析

我们把一天当中景区开门营业的时间记为 0 时刻,则从 0 时刻起,每间隔 k 单位时间便有一辆旅游巴士到达景区入口,同时有一辆旅游巴士从景区出口驶离景区。小 Z 希望乘坐旅游巴士到达景区入口,并沿着自己选择的任意路径走到景区出口,再乘坐旅游巴士离开,这意味着他到达和离开景区的时间都必须是 k 的。小苞想从站点 1 开车到站点 n,一开始小苞在站点 1 且车的油箱是空的。输出一行包含两个正整数,两个整数之间由一个空格隔开,分别表示小苞拿走所有苹果所需的天数以及拿走编号为n的苹果是在第几天。

weixin_42358969的博客 6944

P5660 [CSP-J2019] 数字游戏

P5660 [CSP-J2019] 数字游戏

m0_65182983的博客 360

2021年CSP-J复赛真题解析

如果某台提供符合规范的地址的客户机在尝试加入连接时,与先前某台已经成功建立连接的服务机提供的地址串相同,这台客户机就可以成功加入连接,并称其连接到这台服务机;请注意,尽管不允许两台不同的服务机使用相同的地址串,但多台客户机使用同样的地址串,以及同一台服务机同时被多台客户机连接的情况是被允许的。2 x : 这是第二种操作,假设 H 老师按照上面的伪代码对a数组进行排序,你需要告诉H老师原来a 的第 x 个元素,也就是 ax,在排序后的新数组所处的位置。保证1 ≤ x ≤ n, 1 ≤ v ≤ 10^9。

weixin_42358969的博客 2731

2020年CSP-J复赛真题解析

在计算计划获奖人数时,如用浮点类型的变量(如 C/C++中的 float、double,Pascal 中的 real、double、extended 等)存储获奖比例 w%,则计算 5 × 60% 时的结果可能为 3.000001,也可能为 2.999999,向下取整后的结果不确定。按上述走法,取到的数之和为(-1) + (-1) + (-3) + (-2) + (-1) + (-2) = -10,可以证明为最大值。注意,每一个询问的修改都是临时的,即之前询问中的修改不会对后续的询问造成影响。

weixin_42358969的博客 1814

2019-CSP-J:复赛真题及解析

本文深度解析 2019 年 CSP‑J 复赛四道真题,涵盖字符串(**数字游戏**)、模拟与队列优化(**公交换乘**)、完全背包 DP(**纪念品**)以及 BFS 奇偶最短路(**加工零件**)四大核心知识点,难度横跨入门到提高。每道题均附有思路拆解、分步模拟、易错点提醒及参考代码,适合入门选手系统复盘与查漏补缺。

qq_35624947的博客 630

2019 CSP-J(普及组)复赛【答案】.pdf

2019 CSP-J(普及组)复赛【答案】

NOIP1998-2018 CSP-J2、CSP-S2 2019-2024 第2轮 复赛 真题 讲解、解析

NOIP1998-2018 CSP2019-2023 第2轮 入门组 提高组 复赛 真题讲解、复赛分析及建议、复赛总结等-优快云博客2023 CSP-J2 CSP-S2 复赛 第2轮 真题讲解、复赛分析及建议、复赛总结等_23年 csp-s 复赛真题-优快云博客NOIP 历年试题大致考点总结-优快云博客。

青少年趣味编程 1571

Python金融数据获取工具库之baostock使用详解

在金融数据分析和量化交易中,获取准确及时的市场数据是非常重要的。baostock是一个专门为中国股市数据提供支持的 Python 库,它提供了免费的股票数据接口,用户可以方便地获取股票、指数、基金等各种金融数据。本文将详细介绍baostock库,包括其安装方法、主要特性、基本和高级功能,以及实际应用场景,帮助全面了解并掌握该库的使用。

Rocky006的博客 5339

Win7运行豆包桌面版的兼容性原理与实操方案

Windows 7作为已停止主流支持的操作系统,其与现代Electron应用的兼容性问题本质是API层面的系统调用断层。Electron 28+依赖的GetSystemTimePreciseAsFileTime、SetThreadDescription等Windows 10专属API,在Win7 SP1中天然缺失,导致‘无法定位程序输入点’等典型错误。解决路径并非简单打补丁,而是需理解底层ABI差异、补丁堆叠边界及动态API转发机制。关键技术价值在于通过兼容层(如VxKex NEXT)或运行时降级(Elec

weixin_33290540的博客 1321

CSP-J 2019复赛真题解析:面向初中生的考场级解题手记

CSP-J(计算机软件能力认证初级)是面向青少年的算法与编程实战能力评测体系,其核心不在于炫技式算法,而在于基础语法掌握、输入输出鲁棒性、边界条件处理及工程化调试能力。本文围绕2019年复赛四道真题,深入剖析文本解析、状态建模、动态规划简化与树结构构建等关键环节,强调scanf/fgets等C风格IO的稳定性、strtok空格容错处理、离散化时间状态设计、以及‘暴力即稳妥’的考场决策逻辑。内容紧扣NOI系列赛事入门路径,覆盖C++11兼容性、栈空间限制、编译器版本适配等真实评测环境约束,为初学循环与数组、正

weixin_27215337的博客 336

突破Cloudflare 5秒盾!Python爬虫+GPT分析JS混淆实战(附完整代码)

这篇文章的核心观点其实不是“怎么过CF”,而是如何把LLM嵌入逆向工程的工作流。AI不会取代逆向工程师,但它正在重新定义逆向工程师的工作方式。过去我们80%的时间花在读懂混淆代码上,现在这部分可以外包给GPT,我们把精力集中在架构判断、异常处理和系统设计这些真正需要人类直觉的地方。技术会变,CF的防护会升级,GPT的能力也会迭代。但这种“人机协作拆解复杂问题”的方法论,比任何具体的绕过技巧都更有长期价值。参考资料Cloudflare Bot Management官方文档。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 534

Csp-j 2019复赛真题题解

本文介绍了三道CSP-J竞赛题目及解题思路:1. 数字游戏:统计8位字符串中'1'的个数,通过简单遍历即可解决;2. 公交换乘:使用队列和结构体模拟乘车过程,处理优惠券的累积和使用条件;3. 纪念品:采用贪心策略处理每日买卖,部分分通过特殊数据情况简化问题。附加题优秀的拆分要求将偶数拆分为互不相同的2的幂次方,奇数直接输出-1。文中提供了各题的代码实现和部分分获取技巧,总分可达230分(二等奖)。

Draco_Dawn的博客 295

HFSS实战项目——高带外抑制特性SIW带通滤波器

本文对单级滤波器和双级滤波器的设计、工作原理及仿真结果进行了详细分析,并验证了双级SIW带通滤波器在性能方面的优越性,为微波通信系统中滤波器的设计和应用提供了重要参考。

2401_87464239的博客 1812

【2025软考高级架构师】基础知识部分——6、软件架构设计

(1)架构是对系统的抽象(2)架构由多个结构组成(3)任何软件都存在架构(4)元素及其行为的集合构成架构的内容(5)架构具有“基础”性(6)架构隐含有“决策”

qq837993702的博客 1万+

CSP-J 2019 真题 数字游戏 题解(入门)

CSP-J 2019 真题「数字游戏」完整题解,考点入门难度,含题意拆解、前置知识、逐段代码讲解、样例模拟与踩坑总结。

stillwatersss的博客 178

【HAL库】STM32CubeMX开发----STM32F407----ETH+LAN8720A+LWIP----ping通

本次实验以芯片为MCU,使用25MHz外部时钟源。以太网PHY层芯片为LAN8720A,由MCU引脚PA8提供时钟。

MQ0522的博客 4841

CSP-J复赛真题解析:从模拟、背包到图论BFS的算法实战指南

算法是计算机科学的核心,它通过一系列指令高效解决特定问题。其原理在于对数据结构和计算步骤的精妙设计,旨在提升程序性能与资源利用率。在信息学竞赛如CSP-J中,掌握基础算法并灵活应用是取得佳绩的关键。动态规划通过子问题最优解构建全局解,常用于优化问题;广度优先搜索(BFS)是图论中遍历与最短路径的基础工具。本文以2019年CSP-J复赛真题为切入点,深入剖析了模拟、完全背包、动态规划及图论BFS等核心算法的应用场景与实现细节,帮助选手构建从问题抽象到代码实现的完整思维框架,有效提升竞赛实战能力。

weixin_31155097的博客 294

基于深度学习的电力系统暂态稳定评估与预防控制复现

本文复现了基于深度学习的电力系统暂态稳定评估与预防控制方法。主要内容包括:(1)数据预处理环节,对IEEE 39节点系统的电压幅值、相角等特征数据进行归一化处理;(2)ACNGAT模型实现,该模型结合时间卷积网络(TCN)和图注意力网络(GAT)提取时空特征;(3)采用改进的帝企鹅优化算法进行预防控制。关键技术点包括:融合时空信息的特征提取、改进的邻接矩阵构建方法(λ_ij = E_i * E_j * B_ij)以及时空注意力机制。代码实现采用Python和PyTorch框架。

huanghm88的专栏 334

【FPGA教程案例96】控制案例1——基于FPGA的自适应PID控制器verilog实现

首先,我们复习下课程传统的PID控制器,往往存在调整速度较慢,超调过大等缺点。为了解决这个问题,在实际的PID应用中,需要实时的调整PID的控制参数,以达到加快PID控制速度,降低超调等目标。目前,自适应PID控制器,一般有误差反馈调整,模糊控制器调整,神经网络调整。其中模糊控制器调整,神经网络调整较为复杂,在入门案例中不做介绍,在本课程中,我们将实现相对略微简单点的基于误差反馈调整的自适应PID控制器。

FPGA/MATLAB学习教程/源码/项目合作开发 6198

CSP-J 历年复赛 T1 及解析(2019~2025)

本文整理了2019-2025年CSP-J信息学竞赛的7道真题,涵盖字符串处理、进制转换、数学规律等核心算法。每道题提供思路分析、解题步骤、易错点提示和C++代码,适合备赛复习。题目难度从入门到普及级,强调基础算法和编程细节,如边界条件处理、数据类型选择等。备考建议包括:避免暴力解法、注意特殊测试用例、合理预估数据范围。通过系统练习这些典型题目,可有效提升算法思维和竞赛应对能力。

qq_35624947的博客 763

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

CSP-J 2019 真题 纪念品 题解(普及+/提高)

CSP-J 2019 真题「纪念品」完整题解,考点普及+/提高难度,含题意拆解、前置知识、逐段代码讲解、样例模拟与踩坑总结。

stillwatersss的博客 119

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

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

CSP-J复赛真题深度解析:从模拟、贪心到动态规划与图论的实战拆解

算法是计算机科学的核心基础,其本质是通过一系列明确的指令高效解决特定问题。在编程竞赛中,掌握核心算法原理并能灵活应用是取得高分的关键。动态规划通过将复杂问题分解为重叠子问题来优化求解,而图论中的广度优先搜索(BFS)等算法则是处理路径与连通性问题的利器。这些技术的价值在于能将现实场景抽象为可计算的模型,从而在资源分配、路径规划等应用场景中提供最优或可行解。本文以CSP-J复赛真题为例,深入剖析了如何将生活化问题转化为经典的完全背包模型和奇偶最短路问题,并提供了详细的贪心策略证明与BFS实现方案,为参赛者提供

weixin_33404102的博客 232

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

2023 CSP-J2 CSP-S2 复赛 第2轮 真题讲解、复赛分析及建议、复赛总结等

2023 CSP-J2 CSP-S2 复赛 第2轮 真题讲解、复赛分析及建议、复赛总结等

青少年趣味编程 6283

2024 CSP-J2 CSP-S2 第2轮 复赛 真题 讲解、解析

2024 CSP-J2 CSP-S2 第2轮 复赛 真题 讲解、解析

青少年趣味编程 3317
上一篇: 区间DP---P3205 [HNOI2010]合唱队
下一篇: CSP-J 2021复赛真题解析
莫霸学编程
博客等级 码龄7年 37粉丝 130原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值