- 博客(33)
- 收藏
- 关注
原创 《深度学习:算法到实战》【第四周】MobileNet V1&V2&V3与ShuffleNet V1与SENet笔记
传统的CNN内存消耗大,运算量复杂,无法在各种移动端设备和嵌入式设备运行。MobileNet是为了移动端和嵌入式设备存在的轻量级CNN,与VGG相比它的准确率只下降了0.9%,参数却只有VGG的321,它的网络结构如下。文中主要是通过Depthwise Convolution()以及Pointwise Conv()减少计算量,理论上说,普通卷积的计算量是DW+PW的9倍。DW卷积是在每个channel进行的,PW卷积可以看作使用1∗1的普通卷积将输出的特征图修改成你想要的channel。
2023-02-08 15:46:47
1064
1
原创 《深度学习:算法到实战》【第三周】ResNet+ResNeXt笔记
已知神经网络总是趋向于较深的网络发展,在ImageNet数据集中作者提出的ResNet评估了比VGG更深8倍的152层残差网络,复杂度仍然比VGG更低。在深度的卷积神经网络中我们也知道最主要引起的就是梯度消失/爆炸、退化问题(degradation problem)。作者认为在有限的时间内无法在传统卷积网络中找到一个有效方法解决这个不是由过拟合引起的退化问题。所以作者通过恒等映射(Identity Mapping)进行改进卷积网络,提出了残差学习(Residual Learning)的概念,表达形式为H。
2023-02-02 09:40:12
423
1
原创 《深度学习:算法到实战》【第二周】卷积神经网络笔记
1、dataloader 里面 shuffle 取不同值有什么区别?shuffle:在每个epoch中对整个数据集data进行shuffle重排,默认为False。当值为False的时候,每次打印出的数据集都是一样的。当值为True的时候,每次打印出的数据集都是随机被打乱的。2、transform 里,取了不同值,这个有什么区别?
2023-01-26 21:24:08
347
原创 《深度学习:算法到实战》【第一周】深度学习基础笔记
1、AlexNet有哪些特点?为什么可以比LeNet取得更好的性能?1. AlexNet相较于LeNet, 网络更深。2. AlexNet使用ReLu替换了LeNet的Sigmoid作为激活函数,验证了其效果在较深的网络中超过了Sigmoid, 成功解决了Sigmoid在网络较深时的梯度消失问题。3. AlexNet引入了Dropout用于防止过拟合。保证了在训练数据和测试数据的准确率都较高。2、激活函数有哪些作用?激活函数最主要的作用就是用来增加非线性因素的.
2023-01-18 20:52:10
337
1
原创 本地项目与GitHub
1.注册GitHub账号2.创建SSH Key由于我的电脑是Windows的操作系统,所以我下面都使用Git CMD实现。ssh-keygen -t rsa -C "yourmail@..." 之后一路回车默认,完成后前往”C:\Users\你的用户名.ssh”路径下找到对应的两个文件。id_rsa是私钥,不能泄露,id_rsa.pub是公钥,需要将这个文件里面的内容上传到 GitHub。3.在GitHub添加SSH Key复制 id_rsa.pub 里面的内容,登录Git Hub之后来到下
2021-10-20 11:59:54
143
原创 2021牛客暑期多校训练营9 C、Cells
C、Cells参考过的题解题目大意你有一张无穷大的二维矩阵,你的出发点在格点(0,ai)(0,a_i)(0,ai),并且保证了出发点横坐标依次递增:ai<ai+1a_i<a_{i+1}ai<ai+1。你的目标点分别是(1,0),(2,0)...(n,0)(1,0),(2,0)...(n,0)(1,0),(2,0)...(n,0),你有几个出发点就有几个目标点,求从出发点去目标点走过的路径没有任何交点的方案数。Solution考点:LGV引理+多项式卷积这题第一个难点就是
2021-09-06 21:45:04
151
原创 2021牛客暑期多校训练营5
B、Boxes题目大意你有nnn个盒子,每个盒子内存在可能有黑球和白球中的一种,打开每个盒子都有一个代价wiw_iwi,你还有一次询问裁判的机会,当然询问裁判代价为CCC,你需要告诉裁判这nnn个盒子每个盒子里面的球颜色,你需要花费的最小代价是多少?Solution考点:思维首先我们不询问裁判的话,我们就要把nnn个盒子全部打开,代价为∑i=1nwi\sum\limits_{i=1}^nw_ii=1∑nwi如果我们询问裁判,那么想想我们是不是最多只需要打开n−1n-1n−1个盒子,并且如果
2021-08-23 15:51:46
194
原创 2021牛客暑期多校训练营4
B、Sample Game题目大意你有一个随机数生成器,他会随机生成111到n(1≤n≤100)n(1\le n\le 100)n(1≤n≤100)之间某个数,生成iii的概率为pip_ipi。现在分为大体333步操作:随机生成一个xxx。如果这个xxx是已经生成的数中最大的,返回步骤一继续生成新的数,否则进入步骤三游戏结束,本局游戏的得分为生成序列的长度的平方y2y^2y2。现在要你求出这局游戏的得分期望E(y2)E(y^2)E(y2)。Solution考点:期望dpE(y2
2021-08-23 15:51:20
305
原创 2021牛客暑期多校训练营3
B、Black and white题目大意地图规模为5000∗50005000*50005000∗5000级别,点权wi(0≤wi<105)w_i(0\le w_i<10^5)wi(0≤wi<105)依靠公式生成,你可以花费点权那么多钱涂黑一个点,如果长方形中333个顶点被涂黑了,那么剩下的顶点可以免费涂黑,询问将整张图涂黑的最小代价是多少?Solution考点:并查集我们如何看待涂黑333个点第四个点可以免费这个是我们解题的关键。将333个点沿着xxx轴yyy轴方向一路延
2021-08-09 11:03:22
124
原创 2021牛客暑期多校训练营2
C、Draw Grids题目大意给出n∗mn*mn∗m的点矩阵,两名玩家,每次玩家要连接一条边,并且保证图中没有成环的地方。Solution考点:树形结构我们知道我们看成n∗mn*mn∗m个点构成的一片树林的话,最终就是一人连接一条边,最终构成一棵树。直接判断节点的奇偶性即可。下面的是PythonPythonPython代码。n,m=map(int,input().split())p=n*m-1if p&1: print("YES")else: print('N
2021-08-09 11:02:18
166
原创 2021牛客暑期多校训练营1
A、Alice and Bob题目大意存在两堆石子,石子个数分别是nnn和mmm,数量级在5∗1035*10^35∗103,现在每个人轮流进行挑选,必须任选一堆拿走k>0k>0k>0个石子,再从另外一堆拿走s∗ks*ks∗k个石子s≥0s\ge0s≥0,也就是第二次选的可以拿走000个石子。AliceAliceAlice先手,BobBobBob后手,第一个无法操作的人就输了,询问比赛谁胜利了。Solution考点:博弈首先我们来考虑用f[i][j]f[i][j]f[i][j]代
2021-08-09 11:01:24
124
原创 网络流
参考学习的题解P3376 【模板】网络最大流因为只是一道模板题,不涉及建图这里就不展开介绍。sapsapsap实现最大流,不会的可以参考这篇文章用上了弧优化以及gapgapgap优化。#include <bits/stdc++.h>using namespace std;#define js ios::sync_with_stdio(false);cin.tie(0); cout.tie(0)#define all(__vv__) (__vv__).begin(), (__vv__
2021-04-27 21:58:50
157
原创 软件工程数据流图作业
有关数据流图的层次和加工编号转载于蜗牛____的这篇文章数据流图的各个层次顶层图:只有代表整个软件系统的111个加工,描述了软件系统与外界(源或宿)之间的数据流0层图:顶层图中的加工经分解后的图称为000层图(只有111张)中间层图:中间层图中至少有一个加工(也可以有多个)在下层图中分解成一张子图底层图:处于最底层的图称为底层图,其中所有的加工不再分解成新的子图图和加工的编号顶层图只有一个,代表整个软件系统的加工,该加工不必编号。000层图中的加工编号分别为1、2、3...1、2、3...1
2021-04-13 17:40:54
5635
3
原创 最大连续子段和
Solution首先我们介绍一下,什么叫做序列的最大连续子段和。给你一个序列,序列中有正有负,问你只选其中连续的一段子串求合可以拿到的最大值是多少?那么对于这样的一个问题,首先我们分两种情况。1、静态查询所谓静态查询,也就是对序列中原本的数不进行修改,每次只会查询一个固定的区间。那么对于这种静态的问题,我们最容易想到的办法就是O(n2)O(n^2)O(n2)枚举前后端点,O(n)O(n)O(n)求和,最终求解最大值,这样的复杂度是O(n3)O(n^3)O(n3)。第二种做法,我们预处理全部的数它们的
2021-04-11 21:23:33
2390
原创 Codeforces Global Round 12 2/6
比赛链接A. Avoid Trygub输入长度为n的字符串s,你可以对字符串进行顺序的调换,保证"trygub"不是新串的子串。n≤200n\leq200n≤200输出字典序最小的那个即可。B. Balls of Steel给出n个小球的坐标xi,yix_i,y_ixi,yi,以及静电的影响范围k。你可以选择任意小球带点,如果一个球带电他就会吸引坐标相减绝对值小于等于k的其余小球。问你要使得全部小球都聚拢在一个坐标,你需要最少让几个球带电,如果无法聚拢输出-1。2≤n≤100,k≤106,
2021-02-16 15:15:15
164
原创 Codeforces Round #701 (Div. 2) 2/12
比赛连接T1给出a,b两个数字。你有两种可以选择的操作。操作a=⌊ab⌋a=\lfloor\frac{a}{b}\rfloora=⌊ba⌋b=b+1b=b+1b=b+1数据范围在10910^9109中,问你最少需要操作几次可以把aaa变成0。通过思考,我们知道如果我们最终把b变成了某一个数,使得a变为0,那么我们在一开始就把b一直累加到需要的结果一定是最优解。因为这样就可以先除一个比较大的数。那么我们知道当b!=1b!=1b!=1时,如果b是2只需要大概30次除法就可以把a变成0。所以我们
2021-02-14 22:07:53
206
原创 Codeforces Round #688 (Div. 2) 12/4
比赛链接T1给出两个有序的数组,判断里面有几个相同的数,可用O(n+m)O(n+m)O(n+m)解决。#include <bits/stdc++.h>using namespace std;#define js ios::sync_with_stdio(false);cin.tie(0); cout.tie(0)#define all(__vv__) (__vv__).begin(), (__vv__).end()#define endl "\n"#define pai pair
2021-02-12 15:07:24
121
原创 Educational Codeforces Round 99 (Rated for Div. 2) 11/30
比赛链接T1给出f(x)=int(reverse(x))f(x)=int(reverse(x))f(x)=int(reverse(x)),例如f(123)=321,f(100)=001=1f(123)=321,f(100)=001=1f(123)=321,f(100)=001=1。再给出g(x)=xf(f(x))g(x)=\frac{x}{f(f(x))}g(x)=f(f(x))x,输入一个整数n。求1≤x≤n1\leq x\leq n1≤x≤n,构成的g(x)g(x)g(x)集合中有几个元素。1
2021-02-11 10:46:27
142
原创 Codeforces Round #687 (Div. 2) 11/29
比赛链接T1T组输入,每组输入地图的大小n∗mn*mn∗m,并且地图上每一个点都存在一个犯人,每个犯人可以花费一个晚上走到相邻的四个格子,现在(x,y)处有一个逃生通道,询问最后一个走的犯人需要花费几个夜晚到达。判断地图的四个端点寻找距离最大者即可。#include <bits/stdc++.h>using namespace std;#define js ios::sync_with_stdio(false);cin.tie(0); cout.tie(0)#define all(
2021-02-10 17:29:24
142
原创 Codeforces Round #686 (Div. 3) 11/24
T1构造题,T组,输出一个长度为n的全排列,并且保证全排列中没有pi=ip_i=ipi=i的点。n≤100n\leq 100n≤100输出2 3 4 5… n 1,即可。T2T组输入,每次输入长度为n的数组,现在需要你找到出现一次的数里面最小的是对应下标在什么位置,如果没有数出现一次那么就输出-1。n≤2∗105n\leq2*10^5n≤2∗105开个计数器模拟一下就行了。T3给你长度为n的序列,以及其中的元素值,你可以选定一个x把原数组根据ai=xa_i=xai=x,切割成一些小块。
2021-02-09 00:22:38
138
原创 Codeforces Round #700 (Div. 2) 2/7
T1题目有2个人互相操作一个字符串s,第一个人希望把字符串s变得字典序最小,第二个人希望把字符串s变得字典序最大。必须保证每个位置都和之前起始的字符不同,第一个人操作s0s_0s0,第二个人操作s1s_1s1,第一个人操作s2s_2s2依次下去,输出他们会把字符串变成什么样子。∣s∣≤50|s|\leq50∣s∣≤50从头遍历字符串,分奇偶判断是谁操作,再判断一下是不是起始就是a或者z。#include <bits/stdc++.h>using namespace std;#d
2021-02-08 16:51:07
157
原创 Codeforces Round #685 (Div. 2) 11/21
T1中文题意:T组输入,每次输入一个整数n,你每次可以把n除以一个它的因子,或者减1,问把n变成1的最小步骤是几次。n≤109n\leq10^9n≤109分类讨论,先特判1,2,3三个特殊的数,再看后面的数发现我们可以分奇偶讨论了。偶数我们可以把它变成2,再减去1就是1。奇数我们一定要先减去1变成偶数在变成2再变成1。因为任何一个大于3的奇数都不可能一步变成2或者1。#include <bits/stdc++.h>using namespace std;#define js ios
2021-02-07 16:02:01
99
原创 Codeforces Round #699 (Div. 2) 2/6
T1中文题意:你现在在(0,0)点,有四种操作对应上下左右四个方向,现在给出终点坐标(x,y),以及指令集S是一个只包含四个字母的字符串,对应的动作你可以选择执行也可以选择不执行,询问你最终能不能到达(x,y)点。T组输入。T≤1000,∣s∣≤105T\leq1000, |s|\leq10^5T≤1000,∣s∣≤105。因为原点出发,指令可以执行也可以不执行,那么就认准2个方向就行了,判断这两个方向是不是满足长度大于等于(x,y)#include <bits/stdc++.h>u
2021-02-06 21:46:15
179
原创 Codeforces Round #697 (Div. 3) 1/25
比赛链接T1给你一个n,判断n是不是可以被除了1以外的奇数整除。可以输出YES,否则输出NO。2≤n≤10142\leq n\leq10^{14}2≤n≤1014依次除2,判断是否存在奇因子即可。void solve() { n = read(); do { if (n & 1) { puts("YES"); return; } n = n >> 1; } while (n != 1); puts("NO");}T2给出整数n,判断n是不
2021-01-31 11:29:35
82
原创 Educational Codeforces Round 103 (Rated for Div. 2) 1/29
比赛链接T1中文题意:T组输入,给你n个盘子,你要向里面放苹果,使得盘子中苹果总数是m的倍数。并且盘子内最多的苹果最小值是多少。并且一定要保证每个盘子都有苹果。n,m≤109n,m\leq10^9n,m≤109。如果n≤mn\leq mn≤m,那么直接平铺盘子,直到满足倍数关系,答案就是m/n+(m%n==0)m/n+(m\%n==0)m/n+(m%n==0),后面加法就看要不要额外补充。如果n>mn>mn>m,我们调整m是第一个大于n的倍数即可。m=m∗celi(1.0∗n/
2021-01-30 17:59:02
91
原创 Codeforces Round #696 (Div. 2) 1/19
比赛链接T1中文题意:T组输入,每次输入一个字符串A,现在需要你找到一个字符串B,使得A+B(二进制加法)之后值最大。并且还有一个特殊的点在于,如果结果中存在连续的字符那么连续的字符会被浓缩成一个字符。类似于A=111,B=111,得到结果会是A+B=222=2。现在要你输出字典序最大的结果是由哪个B得来的。∣A∣≤105|A|\leq10^5∣A∣≤105一个思路,高位能加1就加1,高位加了1之后要么是1要么是2,根据高位调整低位即可。const int N = 1e6 + 7; ll n
2021-01-28 16:29:24
90
原创 Educational Codeforces Round 98 (Rated for Div. 2) 11/19
比赛链接T1中文题意:T组输入,每组输入一个坐标点(x,y)(x,y)(x,y),做为你需要到达的终点,你的起点位置在(0,0)(0,0)(0,0),现在你每次移动只能上下左右或者不动,并且不能执行两次相同的移动方向,问去到终点的最少移动次数是多少?T≤100,0≤x,y≤104T\leq100, 0\leq x,y\leq10^4T≤100,0≤x,y≤104。规律题,发现走到主对角线上是最简单并且不会有相同移动方向的。那么通过移动到主对角线某个点,再去走一步停一步直接走向终点就是最快的。vo
2021-01-27 14:54:19
75
原创 Codeforces Round #684 (Div. 2) 11/17
比赛链接T1中文题意:T组输入,每次第一行输入4个整数n,c0,c1,hn,c_0,c_1,hn,c0,c1,h,第二行给出一个长度为n的二进制串。你可以花费h把它某一位取反。最终你要花c0c_0c0买下全部的0,c1c_1c1买下全部的1,问最小的花费是多少。T≤10,n,c0,c1,h≤103T\leq10,n,c_0,c_1,h\leq10^3T≤10,n,c0,c1,h≤103简单思维,换掉一位一定是花费更少才会换,那么这个换了花费更少,那就把全部0都要换掉或者1换掉。所以总结
2021-01-26 23:10:52
82
原创 Codeforces Round #683 (Div. 2) 11/15
比赛链接T1中文题意:T组输入,每组输入一行n,代表你有长度为n的数组,并且数组元素是[1,2,3,4…]这样下去的。现在你第一次可以选择一个下标位置,保持这个位置的元素不变,其他元素全部加1,第二次你也可以重新选择一个下标位置,保持这个位置元素不变,其他元素全部加2,以此类推。需要你找出一个操作方案,使得最终序列中全部的数变成相同的。T≤100,n≤100T\leq100, n\leq100T≤100,n≤100。简单思维,我们选择的加法是先加1后加2再加3,那么每次加的位置就会比前一次加少加1
2021-01-26 21:38:23
99
原创 Codeforces Round #682 (Div. 2) 11/13
比赛跳转链接T1中文题意:T组输入,每次输入一个n,构造长度为n的序列,保证序列中的每一个子序列都是好的。关于好数组的定义是,数组内元素和可以被长度整除。T≤100,n≤100T\leq100,n\leq100T≤100,n≤100。比较基础的构造题,打印nnn个111或者nnn个nnn都可以。int main() { int T = 1; T = read(); while (T--) { int n = read(); for (int i = 1; i <= n; ++
2021-01-24 21:59:46
139
原创 JXNU20级第六次周练题解
1005、拯救雪乃酱一个文本的输入,一个字母的输出,可以一直处理到文件结尾。接下来统计计数即可。#include<bits/stdc++.h>//这个是万能头文件,加入这一个就加了绝大部分算法竞赛需要的同文件//例如stdio.h,iostream,algorithm,vector等等//如果CB或者DEV C++没有这个头文件需要手动去网上找方式添加,//在HDU和其他大部分OJ平台cpp提交都是支持这个头文件的#define N 30int a[N];int main()
2020-12-12 12:57:39
228
原创 操作系统实验
实验一 处理器管理-优先数调度算法用户自定义个结构体名字叫做PCBPCBPCB,因为我们需要按照优先数调度,所以我的做法就是把这个静态的等待队列按照优先数递增排序即可,因为使用了C++C++C++的algorithmalgorithmalgorithm库里面的sortsortsort快速排序函数它自定义使用lesslessless也就是小于号比较规则,所以我们需要重载这个PCBPCBPCB类中的小于号比较。接下来输出即可。#include <iostream>#include <a
2020-12-10 20:43:54
488
原创 reverse list
题目描述给你一个链表,你需要将他反转的链表新的头部返回出去。Solution最佳操作,三指针推动,一个指向前驱pre,一个指向当前节点now,一个指向后继节点nex,依次向后推进,并且可以保证链表信息不丢失。/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* Re
2020-11-17 21:29:36
194
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人