- 博客(89)
- 收藏
- 关注
原创 docker学习笔记-Linux下从0创建(以mysql为例)
题外话:因为一些事情感觉过去半年都快打算不怎么写博客了,,最近有需求所以和朋友快速上手了一下docker,想了想还是记录一下。估计这几天可以把内容整理出来,先挖个坑吧。
2026-04-06 20:15:07
32
原创 pytorch学习笔记-argparse的使用(加更版)
写这篇文章是因为很多例程执行的语法并不是简单的python train.py,更多时候给了一些可选的参数,所以加更一篇关于参数解析的,当然关于argparse的使用有更多更详细的教程,我这里只记录一下基本的、在网络中的argparse的用法。此时执行python train_argparse.py --epoch 5,打印epoch,可以发现epoch由默认的10更新为了5。教程以最简单的设置epoch为例。
2025-08-19 16:45:41
308
原创 pytorch学习笔记-Loss的使用、在神经网络中加入Loss、优化器(optimizer)的使用
博主最近真要累鼠了…anyway上号更新一点,预计下周就能把该系列更完了= =
2025-08-14 17:03:36
346
原创 pytorch学习笔记-最大池化maxpooling的使用、搭建多层网络并验证、sequential的使用
二编:插入说明一下吧,这一系列一直都是作为我的学习笔记使用的,记录的是如何使用pytorch,以及遇到的一些困惑and自问自答,并不涉及到深度学习相关知识的讲解,另外,博主此前有tf基础(虽然忘光了且很菜),因此对一些东西可能会不作记录,有问题可以评论区提问或者参考一些专门讲此类知识的博客或者视频。最后输出的前一个是batch_size,因此关注最后一个输出的就好,10和图对应了,所以模型是对的。下面来按照这个图搭建一下网络,插图来自土堆老师的视频,如何根据图示模型给出的参数推导编程中缺少的参数。
2025-08-07 18:05:35
287
原创 pytorch学习笔记-自定义卷积、可训练卷积、nn.Module
这一部分感觉也没啥好说的= =也就是reshape部分值得注意一下?剩下的感觉就是了解一下用法就可以,因为实际上在深度学习训练过程中,卷积核的参数是训练得出的,所以更常用的是下面介绍的可训练卷积# 输入数据(图片之类的是二维的),这里采用二维的数据# 定义卷积核[0, 1, 0],# 官网上对input的输入格式要求是上面这样的,显然我们输入的不满足要求,进行修正# 使用自定义的卷积核对输入数据进行卷积操作# stride为步长,默认不进行padding# 更多参数可以参见官方文档。
2025-07-26 19:59:39
312
原创 pytorch学习笔记-使用DataLoader加载固有Datasets(CIFAR10),使用tensorboard进行可视化
说明一下下面的transforms虽然只用了一个可以直接写到datasets.CIFAR10里面完全没问题,但是我还是更加建议下面的这样写,感觉是一个更好的习惯,对于以后使用多个transform的组合时很有利~随便截了不同epoch的最后一个batch构成情况,可以看到内容组合不一样,这是因为我们进行了打乱操作,这样可以保证不同的epoch学习到的batch组合情况不一样。呃这里为什么要单独列出来一下呢是因为想提醒一下最好drop,因为博主隐约记得自己好像踩过batch_size大小不一样的报错坑(
2025-07-25 19:11:59
526
原创 pytorch学习笔记-常用的transform语法,使用tensorboard进行可视化
学习视频是b站up主“我是土堆”的视频,于是对一些代码按照自己的理解写and注释了一下,进行归一下类以便自己以后查看…
2025-07-19 17:53:26
182
原创 麻烦的聚餐/拦截导弹加强版 dp优化nlogn
这俩感觉都是最长上升/下降子序列的问题…这道题是直接copy了拦截导弹的代码改了改。放到了麻烦的聚餐上用的(当成一个模板背好了(
2023-04-21 15:37:15
229
原创 web开发 用idea创建一个新项目
这个写着就是给自己当备忘录用的QAQ这个老师上课一通操作啥也没看清…卑微搞了半天看样子是成功了= = 记录一下省的以后忘了怎么创建(?
2023-03-06 19:47:44
488
原创 pta7-5新浪微博热门话题
新浪微博可以在发言中嵌入“话题”,即将发言中的话题文字写在一对“#”之间,就可以生成话题链接,点击链接可以看到有多少人在跟自己讨论相同或者相似的话题。新浪微博还会随时更新热门话题列表,并将最热门的话题放在醒目的位置推荐大家关注。本题目要求实现一个简化的热门话题推荐功能,从大量英文(因为中文分词处理比较麻烦)微博中解析出话题,找出被最多条微博提到的话题。输入格式:输入说明:输入首先给出一个正整数N(≤105),随后N行,每行给出一条英文微博,其长度不超过140个字符。任何包含在一对最近的#中的内容均被认
2022-06-04 15:04:34
265
原创 pta7-6悄悄关注
新浪微博上有个“悄悄关注”,一个用户悄悄关注的人,不出现在这个用户的关注列表上,但系统会推送其悄悄关注的人发表的微博给该用户。现在我们来做一回网络侦探,根据某人的关注列表和其对其他用户的点赞情况,扒出有可能被其悄悄关注的人。输入格式:输入首先在第一行给出某用户的关注列表,格式如下:人数N 用户1 用户2 …… 用户N其中N是不超过5000的正整数,每个用户i(i=1, …, N)是被其关注的用户的ID,是长度为4位的由数字和英文字母组成的字符串,各项间以空格分隔。之后给出该用户点赞的信息:首先给出一个不
2022-06-04 12:30:35
417
原创 pta7-4 插入排序还是归并排序
根据维基百科的定义:插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列。每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置。如此迭代直到全部元素有序。归并排序进行如下迭代操作:首先将原始序列看成 N 个只包含 1 个元素的有序子序列,然后每次迭代归并两个相邻的有序子序列,直到最后只剩下 1 个有序的序列。现给定原始序列和由某排序算法产生的中间序列,请你判断该算法究竟是哪种排序算法?输入格式:输入在第一行给出正整数 N (≤100);随后一行给出原始序列的 N 个整数;最
2022-05-27 21:23:30
1418
原创 pta7-2 插入排序还是堆排序
根据维基百科的定义:插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列。每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置。如此迭代直到全部元素有序。堆排序也是将输入分为有序和无序两部分,迭代地从无序部分找出最大元素放入有序部分。它利用了大根堆的堆顶元素最大这一特征,使得在当前无序区中选取最大元素变得简单。现给定原始序列和由某排序算法产生的中间序列,请你判断该算法究竟是哪种排序算法?输入格式:输入在第一行给出正整数 N (≤100);随后一行给出原始序列的 N 个整数;
2022-05-27 21:18:54
1942
原创 数据结构 二叉树的删除 (带图详解
第二个例子没选好…将就用5.5凑合一下把#include<iostream>using namespace std;typedef struct ElemType { int key;}ElemType;typedef struct BSTNode { ElemType data; BSTNode* lchild, * rchild;}BSTNode, * BSTree;void DeleteBST(BSTree& T, char key) { BSTree.
2022-04-24 21:11:42
1201
原创 单链表的创建和删除(带头节点
#include<iostream>using namespace std;int a;typedef struct Node { int data;//数据域 Node* next;//指针域}Node;typedef Node* List;//定义线性表void tailinsert(List& h) { //尾插法建立线性表 List tail;//建立一个尾指针 h = new Node;//给链表创建一个空的头 h->next = NULL;/
2022-04-23 15:06:57
1584
原创 pta7-2 根据后序和中序遍历输出先序遍历
题目:本题要求根据给定的一棵二叉树的后序遍历和中序遍历结果,输出该树的先序遍历结果。输入格式:第一行给出正整数N(≤30),是树中结点的个数。随后两行,每行给出N个整数,分别对应后序遍历和中序遍历结果,数字间以空格分隔。题目保证输入正确对应一棵二叉树。输出格式:在一行中输出Preorder: 以及该树的先序遍历结果。数字间有1个空格,行末不得有多余空格。输入样例:72 3 1 5 7 6 41 2 3 4 5 6 7输出样例:Preorder: 4 1 3 2 6 5 7#inclu
2022-04-05 16:08:14
441
原创 pta7-4 出栈序列的合法性
题目:给定一个最大容量为 M 的堆栈,将 N 个数字按 1, 2, 3, …, N 的顺序入栈,允许按任何顺序出栈,则哪些数字序列是不可能得到的?例如给定 M=5、N=7,则我们有可能得到{ 1, 2, 3, 4, 5, 6, 7 },但不可能得到{ 3, 2, 1, 7, 5, 6, 4 }。输入格式:输入第一行给出 3 个不超过 1000 的正整数:M(堆栈最大容量)、N(入栈元素个数)、K(待检查的出栈序列个数)。最后 K 行,每行给出 N 个数字的出栈序列。所有同行数字以空格间隔。输出格式:
2022-03-24 22:19:08
486
原创 后缀表达式求值 stod函数的使用
题目来自pta代码来自看到的某个佬的解法 发现stod这个神奇的东西找不到原链接就贴一下代码好了 侵删题目:我们人类习惯于书写“中缀式”,如 3 + 5 * 2 ,其值为13。 (p.s. 为什么人类习惯中缀式呢?是因为中缀式比后缀式好用么?)而计算机更加习惯“后缀式”(也叫“逆波兰式”,Reverse Polish Notation)。上述中缀式对应的后缀式是: 3 5 2 * +现在,请对输入的后缀式进行求值。输入格式:在一行中输入一个后缀式,运算数和运算符之间用空格分隔,运算数长度不超
2022-03-16 23:13:53
904
原创 pta7-3表达式转换
题目:算术表达式有前缀表示法、中缀表示法和后缀表示法等形式。日常使用的算术表达式是采用中缀表示法,即二元运算符位于两个运算数中间。请设计程序将中缀表达式转换为后缀表达式。输入格式:输入在一行中给出不含空格的中缀表达式,可包含+、-、*、\以及左右括号(),表达式不超过20个字符。输出格式:在一行中输出转换后的后缀表达式,要求不同对象(运算数、运算符号)之间以空格分隔,但结尾不得有多余空格。输入样例:2+3*(7-4)+8/4输出样例:2 3 7 4 - * + 8 4 / +#inclu
2022-03-15 21:47:31
1629
原创 pta7-10 求连续maxsum并返回起始结束的下标
初学数据结构、、书上的在线算法 感觉有点像dp、、当然简单求lis的话dp能过 不过没试过这个用dp怎么样、、 有机会补上#include<iostream>#include<stdio.h>using namespace std;#pragma warning(disable:4996)const int N = 1e5 + 10;int a[N];int k;int main() { scanf("%d", &k); for (int i = ..
2022-02-22 22:19:48
209
原创 AcWing282 石子合并 区间dp
区间dp常见套路:枚举区间长度枚举左端点(同时得到右端点枚举分割点 构造状态转移方程注意和 贪心的合并果子 区别这个每次只能合并 相邻 的两堆 贪心可以任意题目设有 N 堆石子排成一排,其编号为 1,2,3,…,N。每堆石子有一定的质量,可以用一个整数来描述,现在要将这 N 堆石子合并成为一堆。每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻,合并时由于选择的顺序不同,合并的总代价也不相同。例如有 4 堆石子分别
2022-02-06 14:37:33
239
原创 AcWing902 最短编辑距离
给定两个字符串 A 和 B,现在要将 A 经过若干操作变为 B,可进行的操作有:删除–将字符串 A 中的某个字符删除。插入–在字符串 A 的某个位置插入某个字符。替换–将字符串 A 中的某个字符替换为另一个字符。现在请你求出,将 A 变为 B 至少需要进行多少次操作。输入格式第一行包含整数 n,表示字符串 A 的长度。第二行包含一个长度为 n 的字符串 A。第三行包含整数 m,表示字符串 B 的长度。第四行包含一个长度为 m 的字符串 B。字符串中均只包含大写字母。输出格式输出一个整
2022-02-05 23:41:56
571
原创 AcWing09 分组背包问题
分组背包实际上可以看作是限制了的多重背包每组只能取一个 那就枚举所有的策略#include<iostream>#include<algorithm>using namespace std;const int N = 110;int s[N], v[N], w[N];int n, m;int dp[N];int main() { cin >> n >> m; int s; for (int i = 0; i < n; i++) {
2022-02-05 15:24:46
505
原创 多重背包问题 二进制优化版
转化成01背包问题s件物品总能用二进制数想办法±得到#include<iostream>#include<cstring>#include<algorithm>#include<vector>using namespace std;const int N = 2010;int n, m;int dp[N];struct Good { int v, w;};int main() { cin >> n >>
2022-02-05 14:20:59
619
原创 完全背包问题的一点相关问题及解答
先放01背包和完全背包的状态转移方程:Q:为什么完全背包的表达式第二个是f[i][j-v]+w ?从这也可以看出和01背包的代码差别Q: 为什么是01从大到小枚举 ?A: 因为01背包每次用到的是i-1层的f值如果从小到大枚举 j-v<j 那么此时的j-v在第i轮会被计算出不满足用的i-1层但如果从大到小 那么第i轮中j-v并没有被计算得出 会在i-1中才被计算因此 要从大到小枚举对于完全背包问题从小到大枚举同样分析可得...
2022-02-04 16:35:30
359
原创 博弈论 Nim游戏-台阶-集合-拆分
acwing891 nim游戏#include<iostream>using namespace std;const int N = 100010;int main() { int n; cin >> n; int res = 0; for (int i = 0; i < n; i++) { int x; cin >> x; res ^= x; } if (res)puts("Yes"); else puts("No");
2022-02-04 14:39:01
528
原创 AcWing890 能被整除的数 容斥原理
题解建议看这个:https://www.acwing.com/solution/content/29702/#include<iostream>using namespace std;typedef long long LL;const int N = 20;int p[N];int main() { int n, m; cin >> n >> m; int res = 0; for (int i = 0; i < m; i++)cin >
2022-02-03 15:57:04
151
原创 AcWing889 满足条件的01序列 卡特兰数
给定 n 个 0 和 n 个 1,它们将按照某种顺序排成长度为 2n 的序列,求它们能排列成的所有序列中,能够满足任意前缀序列中 0 的个数都不少于 1 的个数的序列有多少个。输出的答案对 1e9+7 取模。输入格式共一行,包含整数 n。输出格式共一行,包含一个整数,表示答案。数据范围1≤n≤1e5输入样例:3输出样例:5由于直接求排列比较困难 因此转化为求路径 假设0是向右走一格 1是向上走一格 则问题转化为卡特兰数问题卡特兰数如下:#include<iostr
2022-02-03 14:08:11
368
原创 高精度的加减乘除法汇总
高精度加法#include<iostream>#include<stdio.h>#include<vector>using namespace std;vector<int>C;vector<int>add(vector<int>& A, vector<int>& B) { int t = 0; int i = 0; while (i < A.size() || i < B.s
2022-02-03 00:06:01
159
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1