自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(330)
  • 收藏
  • 关注

原创 AtCoder Beginner Contest 042题解

A - Iroha and Haiku (ABC Edition) 简单模拟即可,判断是否存在两个5一个1。 #include <bits/stdc++.h> using namespace std; int main(){ int A, B, C; cin >> A >> B >> C; int five = 0; int seven = 0; if(A == 5) five++; else if(A == 7)

2022-04-24 13:47:16 374 1

原创 Codeforces Round #603 (Div. 2), problem: (E) Editor

题目大意 给你一连串的操作,L, R分别代表移动光标操作,其他字符表示在当前光标位置插入一个字符。如果该位置有字符,那么进行替换。让你判断当前输出的序列是否合法,如果合法,那么括号的最大嵌套深度是多少? 思路 首先这个序列的长度不会超过10610^6106的长度,对于(我们可以看成在该位置加1,对于)我们可以看成在该位置减一,然后我们对该序列求前缀和,因为需要保证输出的括号序列合法,那么需要判...

2019-12-01 13:20:28 182

原创 点分治入门

重心分解(Centroid Decomposition) 首先要找到树的中心,树的重心的定义是:删除该中心结点得到的最大子树的顶点数最少的顶点就是树的重心。运用dfs的方法很容易实现,代码为: void get_hvy(int u, int fa){ siz[u] = 1, maxx[u] = 0; for(int i = head[u]; i != -1; i = e[i].ne...

2019-10-23 16:37:19 378

原创 划分树板子

划分树 划分树通过模拟快速排序的过程,每次将数据分为2部分,小的部分和大的部分,并且相同的数在序列中的位置在划分之后相对位置依然不变,通过维护num数组计算当前位置和之前的数有多少个数被分入左子树。具体教程详见博客:划分树 划分树模板 求区间第k小,同样求区间第k大可以转化为求区间[l, r]的第(r-l+1-k+1)小。 #include <cstdio> #include <...

2019-05-27 11:41:51 173

原创 matplotlib画图通过tensorboardX显示(pytorch)

问题描述 由于远程服务器上无法显示实时生成的图片,通常比较笨的方法是通过保存下来改图片,然后下载到本地,这个方法费时又费力。因此,这里我决定介绍一种通过tosorboardX的方法来显示图像。 具体步骤 如果是在docker上首先需要对tensorboard的6006端口进行映射。 对应示例代码 import torch from torch.autograd import Variable ...

2019-03-24 21:08:38 2426

原创 在本地访问远程服务器的tensorboard以及程序展示

如何访问远程服务器上的tensorboard 1.如果你和远程服务器在同一个局域网内,那么直接在浏览器地址栏输入:remote&nbsp;server&nbsp;address:6006remote\ server\ address:6006remote&nbsp;server&nbsp;address:6006,例如:192.168.1.200:6006192.168.1.200:600619...

2019-03-05 16:41:32 3031

原创 backpropagation算法代码实现

前言 研究生生涯正式开始了,看了吴恩达的AI课程,然后通过廖雪峰学习了一些python的基础知识,然后看了一些关于BP博文,然后手推了一遍方向传播算法,还要完成一些导师布置过来的任务,收货还是听过的,然后推荐给Ml入门者一些好的福利。 福利链接 廖雪峰python3网站学习地址:链接地址 吴恩达AI课程:链接地址 我见过最好的BP算法的证明:链接地址 正文 今天主要跑了一下bp算法的代码,也...

2018-10-14 23:44:58 824 1

原创 二叉树各种递归非递归层次遍历

二叉树结构体typedef struct BitNode{ char data; struct BitNode *lchild, *rchild; BitNode(){ lchild = rchild = NULL; } }BitNode, *BiTree; 注意这里面的下方的BitNode代表(struct BitNode),BiTree代表(s

2017-09-17 23:07:17 331

原创 UVA 11374 Airport Express(最短路+枚举)

题目分析 我们可以从S出发算法最短路,然后从E出发算出最短路,然后枚举每一条特殊通道即可。输出可能有些麻烦。 #include <queue> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int maxn = 1e4+100; co

2017-07-17 23:00:20 274

原创 UVa 563 - Crimewave

题目分析 因为每个点有限制,很容易想到拆点,然后求最大流判断是否等于b即可。现在已经很容易手打ISAP网络流算法了。。 #include <queue> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int maxn = 1e5+10

2017-06-24 11:59:02 288

原创 hdu 5692 Snacks(dfs序+线段树)

题目分析 这道题主要是建树的时候不好想,自己也没有做过这种类似的题目,因此不会。不过很容易理解,如果你学过LCA的离线算法,那么对这道题的理解可能会更好。总结起来只有关键的一句话,dfs序的每个子树的序列号是连续的,我们就根据这个建立线段树就行了。 #pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio>

2017-05-23 12:44:43 370

原创 大学生程序设计邀请赛(华东师范大学)题解

B 分词 首先建字典树,然后简单dp一下可过,输出有坑!!,因为int没有改成double wa出血。 #include <cmath> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int MAX = 26; const int m

2017-05-15 20:56:52 535

原创 POJ 1740 Tree(点分治)

题目分析 这道题是挑战上的一道题目,挑战上面代码写的很长并且不容易理解。此题也是楼教主男人八题之一。不过随着算法竞赛的难度逐年增加,以前的论文题现在也变成了模板题,关于点分治的问题很多,区域赛也有出过。 这道题具体方法是这样的,我们首先对树找重心,重心不理解的可以去查资料。然后根据重心对树进行分治,我们计算到树根距离小于等于K的节点,然后计算有多少对,但是我们会发现我们子树进行分治时这些点

2017-05-09 20:33:07 406

原创 HDU 5869 Different GCD Subarray Query(离线处理+树状数组)

题目分析 题意我就不说了,不过可以发现题意简单的题目并没有几道能做出来的。 这题首先可以枚举每一个右端点,我们会发现我们直接可以利用前一个端点求出来的所有gcd,就是gcd(a,b,c)=gcd(gcd(a,b),c)gcd(a,b,c) = gcd(gcd(a, b), c)的思想,又因为一个数的gcd个数其实最多就是这个数的约数个数,其实并不大,分解质因数之后很容易发现。这样我们预处理

2017-04-27 20:45:32 361

原创 POJ 2481 Cows(树状数组)

题目分析 这道题真的是给我wa出血!!主要是因为数组忘了初始化,以后还是要注意这些问题。这道题我以先按E排序从大到小排序,然后按照S从小到大排序,排序完成即可以树状数组求解即可。注意前后2个S,E值相同的情况。 #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace

2017-04-25 20:58:24 269

原创 hdu 1556 Color the ball(树状数组)

题目分析 这道题我表示可以写的方法真的很多,比如线段树,我以前已经写过了,但是树状数组自己第一次写,树状数组反着推表示自己真的看了好久。 前缀和思想#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int maxn = 1e5+100;i

2017-04-25 19:46:08 247

原创 WOJ The Highest Peak(离线LCA+端点打tag)

题目分析 一眼望去赤裸裸的树链剖分,然而老年人早已经忘了树链剖分如何写了,然后这道题比赛的时候树链剖分会超时,还可能有爆栈。好吧,不纠结这么多了,看一下官方做法吧。这道题因为是一直插入最后求最高点就可以了。我们想一想对于线性序列来说如何要让某个区间增加一个数或者减少一个数我们怎么做。我们可以在区间头增加一个数,在区间尾减少一个数,然后把所有的插入处理完之后直接跑前缀和即可得出结果。这道题同样也是

2017-04-25 09:43:53 321

原创 WOJ Your NP has been charged full(普通dp)

题目分析 现场赛看了这道题并没有写,是因为队友说的题意我理解多了,本来是一个buff三回合之后就没有了,但是我认为只要加上了一个buff那么久一直有这个buff,想dp方程的时候发现有后效性,然后就写不出来了。回来之后重新读题发现一个buff三回合之后消失,那么很明显我们就可以只需知道这回合,上回合以及上上回合选什么buff,然后就可以直接写状态转移方程了,时间复杂度O(n∗33)O(n*3^3

2017-04-25 08:33:24 371

原创 hdu 4055 Number String

题目分析 表示自己这个弱菜写这种dp然后并不会,具体过程看注释吧。 /* 很巧妙的一道题,是别人写的dp总结给出的一道题,这道题消除后效性 非常巧妙,dp[i][j]表示长度为i最后一个数字为j的方法数(请注意长度为i的i个数的大小不超过i) 这样我们就可以得出状态转移方程了,但是如果对于前一个状态大于等于当前状态最后一个数字的 情况是,这个时候我们将这些数字加1,这样消除后效性。 我们用sum

2017-04-23 16:47:49 306

原创 可持久化数据结构之主席树

前序 怀着激动地心情学习了可持久化数据结构主席树,其实很简单,但是自己因为眼残导致一直没有理解。后来发现这个问题,然后手动模拟了一下这个过程,然后大彻大悟。。表示自己就看了无修改的区间第K大,学习自百度巨巨。。本篇博文转自百度巨巨,链接chairman tree 引言 首先引入CLJ论文中的定义: 所谓的“持久化数据结构”,就是保存这个数据结构的所有历史版本,同时利用它们之间的共用数据

2017-04-18 21:49:13 606

原创 hdu 6000 Wash(2016 CCPC-Final)

题目分析 这道题一开始拿到真的是不怎么会做,看了别人的贪心解法后来自己才知道怎么做。对于洗衣服的过程我们有L件衣服,我们可以用优先队列每次算出最先洗完衣服的时间,这个处理想必大家都会,当然我也想到了,但是后来的事情没有想到,我并不知道关于烘干衣服如何处理,感觉衣服洗完的时间不一样,烘干不知道怎么处理才是最优解,然后自己就傻了,其实烘干衣服可以跟洗衣服一样的方式处理,我们同样利用优先队列处理出L件

2017-04-16 19:25:17 1086

原创 codeforces 788 A. Functions again(最大连续子序列和)

题目分析 这道题因为n达到了1e5,所以必须要优化,我们可以把所有的abs(f[i]-f[i-1])处理出来,这样因为是正负交替的,这样我们就可以求2遍最大连续子序列和就可以了。时间复杂度O(n). #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std;

2017-04-15 15:47:51 325

原创 codeforces 788B Weird journey (欧拉路)

题目分析 这道题读到题面我想到了欧拉通路,欧拉通路是这样的,如果一个图是连通图,并且对于图上的每个点的度数都是偶数,只有2个点的度数是奇数,那么我们可以选择这2个点分别作起点和终点,这样必然存在欧拉路径。本题要求m-2条路走2遍,还有2条路走一遍,因为每一条无向边对应2条有向边,那么很明显每个点的入度都是偶数,这样的话我们只能够选取具有公共节点的边,这样处理过后才会剩下2个奇度节点,同样对于起点

2017-04-15 15:43:08 241

原创 POJ 1236 Network of Schools(强连通分量)

题目分析 这道题首先强连通处理 ,然后求缩点之后的每个点的入度和出度。第一个肯定就是输出入度为0的点,第二个就是输出入度和出度的最大值,因此要保证一个图强连通,那么这个图的每个点肯定既有出去的边也有进来的边。注意当整个图相连通的时候的时候要特判。 #include <stack> #include <vector> #include <cstdio> #include <cstring> #in

2017-04-13 19:41:56 196

原创 UVA 11324 The Largest Clique(强连通缩点+记忆化搜索)

题目分析 这道题的意思就是让你找一条路上最长的路径,使得该路上的所有节点均可以达到,注意要么u到达v,或者v到达u。于是我们可以强连通缩点,然后这个图形就转化为一个DAG(有向无环图),然后记忆化搜索一些即可。 #include <queue> #include <stack> #include <vector> #include <cstdio> #include <cstring> #inc

2017-04-12 21:08:02 221

原创 UVALive 4287 Proving Equivalences(强连通分量)

题目分析 这道题就是求一个图如果转化为一个强连通图,那么我们首先强连通缩点,然后整个图变成一个有向无环图,然后我们又知道强连通图所有节点的入度和出度都不为0,因此我们只需要求缩点之后的图的入度为0的点和出度为0的点的最大值即可。 #include <stack> #include <vector> #include <cstdio> #include <cstring> #include <io

2017-04-12 19:26:09 229

原创 WOJ 26. Lost in WHU(矩阵快速幂变形)

题目Input file: standard input Output file: standard output Time limit: 1 second Memory limit: 512 mebibytes As one of the most beautiful campus in China, Wuhan University is around several hills, s

2017-04-11 13:32:36 421

原创 WOJ 24. Divide by Six

题目分析 一道非常好的dp题,不是很难,但是细节问题很多,比赛的时候瞎搞的,搞了半天没出来,亏我还是队里面写dp的,非常惭愧,比赛的时候一直想着能被6整除的数是一个偶数并且各个数位上的数字相加和mod3等于0,然后写了2个小时,wa了11次,好气呀!!代码上有注释,参考大神解法。 #include <cstdio> #include <cstring> #include <iostream> #

2017-04-10 20:08:02 733

原创 UVALive - 5135 Mining Your Own Business(双联通分量)

题目分析 这道题让你求至少需要装多少个escape shafts,并且在满足最少的escape shafts情况下有多少种选择方案。 这样我们就可以对本图求双联通分量,如果如果这个连通分量有2个以及以上割点那么这个连通分量不需要escape shafts,如果只有一个联通分量,那么可以选择一个非割点的escape shafts,那么可以选择的方案数有该连通分量的结点数减1。对于整个图都是一

2017-04-07 19:13:58 270

原创 UVALive - 3523 Knights of the Round Table(双联通分量)

题目分析 这道题是白书上的一道原题,但是思路很巧妙,如果没看分析我做不出来。这里我说一下自己的理解。因为互相讨厌的其实不能坐在圆桌上的相邻位置,那么很明显我们可以在不互相憎恨的骑士中间建立边,这样就转化为了求不在任何一个奇圈上的结点个数。 奇圈上的所有结点必然属于同一个双联通分量,因此第一步是找双联通分量。又因为二分图没有奇圈,因此我们只需要关注不是二部图的双联通分量。 又因为不是二部图所

2017-04-05 20:01:26 288

原创 UVALive 4255 Guess(前缀和+拓扑排序)

题目分析 这道题又考研了一些构图的能力,表示自己在这方面就是一个智障。将s[i][j]转化为sum[j] - sum[i-1],这里sum数组表示前缀和,然后找到前缀和的大小关系然后构图。然后拓扑排序求得结果。 #include <queue> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm

2017-03-30 20:46:58 412

原创 蓝桥杯 历届试题 蚂蚁感冒

题目分析 这道题分析了一下得出的结论就是最后感冒的蚂蚁数量等于绝对值比第一个感冒的蚂蚁的位置大的且方向向左,还有就是比第一个感冒的蚂蚁的位置小的且方向向右。(这里我们很明显可以发现2个蚂蚁碰面之后并没有什么影响,2个速度相同的蚂蚁同时掉头不如直接看成速度相同的蚂蚁继续向前走) #include <cmath> #include <cstdio> #include <cstring> #inclu

2017-03-21 22:35:07 427

原创 蓝桥杯 历届试题 数字游戏

题目分析 这道题给了一个很明显的一个序列,那么就是数列可以一次写为:(1+0),(1+0+1),(1+0+1+2),(1+0+1+2+3)......(1+0+1+2+..+n−1)(1+0), (1+0+1), (1+0+1+2),(1+0+1+2+3)......(1+0+1+2+..+n-1),这样就转化为1加上一个等差数列,那么直接按照等差数列求和公式Sn=(a1+an)∗n/2S_n

2017-03-19 20:58:59 403

原创 UVA 10054 The Necklace(欧拉路)

题目分析 这道题题目意思是让你用珠子组成一条项链,其实已经比较直接的给你边了,并且项链的头尾是一样的,所以就相当于让你找图中是否存在欧拉回路。关于欧拉回路其实就是判断所有点的入度和出度是否是偶数,如果是则存在,如果不是则不存在。同样输出的时候注意逆序输出。 #include <cstdio> #include <cstring> #include <iostream> #include <alg

2017-03-19 13:43:01 334

原创 Codeforces Round #403 (Div. 1, based on Technocup 2017 Finals) A. Andryusha and Colored Balloons

题目分析 这道题需要求的要多少种颜色,很明显就是一个节点连接的边数最大值加一。这样再dfs进行染色,注意要保证该点与父节点和父父节点不一样,然后就可以了,不明白的直接看代码。 #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int ma

2017-03-14 19:04:21 253

原创 蓝桥杯 历届试题 最大子阵

题目分析 好久之前就做过,直接将2维转化为类似一维的解法即可。 #include <cstdio> #include <cstring> #include <iostream> using namespace std; const int maxn = 505; const int INF = 0x3f3f3f3f; int sum[maxn][maxn];int main(){ int

2017-03-11 20:18:47 295

原创 蓝桥杯 历年试题 国王的烦恼

题目分析 这道题我是通过求最大生成树的方法求出的,然后求这个最大生成树的边中有多少个权值不一样的边即可。 #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int maxn = 1e4+10; const int maxm = 1e5+1

2017-03-11 19:43:07 487

原创 蓝桥杯 历届试题 矩阵翻硬币

题目分析 这道题想了一会突然间就想明白了,我们可以这样想对于一个坐标(x,y),这个坐标被影响的次数是多少恩? 对于坐标(2,3),对其有影响的坐标是(1,1),(1,3),(2,1),(2,3)正好4个,我们会发现对坐标(x,y)有影响 的坐标的个数是x的约束个数乘以y的约数个数,对于一个数而言如果这个数是n的平方,那么这个数约数的个数为奇数,如果不是 这个数约数的个数为偶数

2017-03-11 17:38:25 529

原创 UVA 10047 The Monocycle(bfs)

题目分析 这道题定义状态的时候需要多考虑,我用了四重数组,后面2维表示的分别是方向和颜色,同时旋转的时候对4取模时候如果是减一那么就加三mod 4,于是很简单了,就是输出极其恶心,不想吐槽了。。。 #include <queue> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using

2017-03-05 15:49:33 212

原创 LightOJ 1289 LCM from 1 to n

题目分析 这道题首先给人的感觉就是素数筛,但是空间明显不够,但是看看时间好像可以在4ms算完,于是就要优化空间了,然后学习了一个神奇的数据结构位图。话说位图看了半天其实就是在每个数组中用保存的2进制数来表示该数是否存在。因此我们设mod为32,那么对与每一个数i都可以的到一个商即i/mod,和一个余数i%mod,并且这一对数是唯一的,因此我们就可以在vis下标为i/mod存储1<<(i%mod)

2017-03-01 21:26:32 524

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除