- 博客(135)
- 收藏
- 关注
原创 ImportError: xxx.so: failed to map segment from shared object - uWSGI部署 pytorch和tensorflow 报错 (已解决)
报错大概意思是映射共享库文件失败。虽然和库与python的版本及其依赖有关,但最后排查主要问题还是出在uwsgi对进程的内存分配不够。
2023-05-23 00:33:43 2886
原创 多元统计分析 Fisher 线性判别分析 和 Logistic 回归分析
【代码】多元统计分析 Fisher 线性判别分析 和 Logistic 回归分析。
2023-03-24 23:16:03 420
原创 Python-GIL深度理解
多线程/进程数据混乱的原因:cpu分成多个时间片段,启动10线程,分配10个cpu时间片段,当我累加数字设置比较小的时候,在单个cpu时间片段内,for循环代码就执行完,就不会产生数据混乱的。
2023-03-20 16:36:23 327
原创 12.25 训练周记
双向搜索,就是在起点搜索的过程,终点也在往回搜,从而达到优化的效果。这题比较常规,正常的搜索加上双向优化即可。比较明显的区间dp,把合并n颗珠子的问题转化为合并(n+1)个数合并的问题,只不过有一个数是公用的。利用dfs找到每个点的父亲和每个点的深度。一个循环初始化一个点上面第(1
2022-12-25 23:14:34 195
原创 11.27 训练周记
状态压缩dp,总而言之就是将本来很复杂的状态,表示成二进制的形式,然后进行状态转移。这周事有点多,训练方面有些摸了没学什么新的东西,复习了一下状态压缩dp和数位dp。其中常会用到位运算操作,比如查看当前状态i的二进制形式第j个点(位置)是1还是0。数位dp理解起来和写起来都比较麻烦就不展开篇幅。这两之前的博客也谈过了,就不浪费时间细说。
2022-11-28 12:23:21 129
原创 11.20 训练周记
当操作为奇数的时候才能获胜,用栈模拟,连续的相同字符就消去,剩下的就是被选剩下的,被移走的字符数/2得到的就是操作数。其他情况下,我们需要先找到离质因子的最大幂最近、且大于等于这个最大幂的是2的k次方,然后进行乘法操作补全。使得所有质因子的幂都变为2的k次方,然后进行k次开方,因此结果为k + 1。当n分解的所有质因子的幂的最大值都只有1,那么无法变小,直接输出。当n == 1,无法分解质因子,也无法变小,因此直接输出。这周有些事,没学什么新的东西,主要是写了点题。
2022-11-21 10:26:57 117
原创 11.13 训练周记
找出割点之后,用类似并查集的方式给整个环指定一个父亲,以后这个环就由这个父亲代表,解决了图中存在环的一些问题。虽然一般图论题不会故意出这种题,但是也算是用到次数比较多的算法了(大部分算法学完一次都没用到过...)Tarjan因为之前写过博客了就不分析代码细节了。最近写到了一题需要缩点,缩点本质是解决图中存在环导致难以执行一些操作如最短路之类的问题。然后除了一些思维题就是一些杂题,话说上次网络赛就是卡在了表达式求值这块,刚好找到了一题练练手。的时候则断开这个父节点,其他节点仍然可以由他的子节点通过所以。
2022-11-13 22:04:00 292
原创 11.6 训练周记
这周主要学习了数论和一些概率论的数学知识。暑假已经学了一部分基础的数论了,复习了一下然后接下去学了。这周主要学习了扩展欧几里得和同余还有欧拉定理方面的知识。目前感觉比较实用的还是数据结构和动态规划比较有用。后面还是多花点时间在思维题和数据结构方面吧。但是目前还是用不到,实际比赛应该也写不到这种图,当作知识补充吧。而扩展欧几里得定理就是用来得到定理中的a和b的。其原理说实话还不太会证明。由以前学过的知识,由裴蜀定理。是不全为零的整数,则存在整数。有了扩展欧几里得定理后,
2022-11-06 21:45:04 105
原创 10.30 训练周记
开学也两个月了,要我个人总结的话这两个月花在acm上的时间确实不如之前了,经过暑假的好几次比赛和九月份的网络赛突然感觉自己好像不是这块料,说没有打击是不可能的。当前状态为dp[i][j]表示,i的点链接情况下,j为最后一个链接点的最小权值和。按我的理解,因为直接表示该题的状态会非常麻烦,用二进制表示当前所有点的链接情况,已经连上的记为1,反之为0.注意,转移的时候,j已经是最后链接的点了,那么j必须是为1的,且待转移的之前状态中j不能为1。我的理解是 状态压缩dp,总而言之就是将本来很复杂的状态,表示成。
2022-10-31 09:05:51 118
原创 10.23 训练周记
最短时间也就是m/2对中的最长时间,贪心很好想,肯定是时间最短的牛和时间最长的牛匹配才会使最长时间最短。所以这里的双指针设定一个头尾指针,直接判断这个时间的牛的数量然后相减可以剩下大量时间,而不能一个一个的匹配。简洁概况就是对一组最大值很大很大但个数较少的的数的铺平操作,酱所有数按顺序映射到区间上,适合对数具体没有操作,只考虑相对值的题。对于dp,同上一题的状态,这次我们的状态转移有些变化。对于(i,j)点,要满足他左上方为交错矩阵,首先他必须先和周围三个点构成交错,然后才能进行转移。
2022-10-24 10:42:30 93
原创 10.16 训练周记
这周做了一些有关线段树的练习,和复习了一下其他算法。这周不知道说啥,就直接放点题吧题意是给定一组线段,求最后重叠了k以上的点。这题可以不用线段树也很好做。但如果是用线段树的话,可以先维护两个线段树,进行点的覆盖和区间的覆盖,等到所有操作接受pushdown一串,然后扫描线段输出即可。
2022-10-16 21:22:12 122
原创 10.10 训练周记
这个算法通过O(n)的预处理,可以O(1)的得到数组任意区间上的和。最基本的线段树没有lazy标记和pushdown操作,在确立了我们建立了一颗什么逻辑的树之后,最主要的操作就是遍历和询问。我的理解是,如果目标区间跨了根节点的中点,比如像目标区间[0-3]和当前节点[0-5]这样目标区间跨了节点区间的两边。计算机不知道要怎么分解区间,那么当目标区间跨了节点区间的两边时,向两边搜索,如果搜索的过程发现目标区间在当前节点区间的中点左边,我们就向当前节点区间的左半边区间搜索,反之就向右半边搜索。
2022-10-10 11:19:30 147
原创 10.4 月总结
开学到现在刚好一个月看,这一个月在算法方面略感颓废感觉失去了继续补题刷题学算法的动力,这一个月每天花点时间就能学会好多专业技能带来的成就感,更让我开始怀疑我是否应该继续下去...思来想去,和队友讨论了好多次,还是认为把acm当作一个爱好吧。可能我从来就不适合打算法竞赛,但是我还有其他擅长的事,接下来我会继续认真对待acm的训练,但也只是把学算法写题当作一个爱好了。最后再反省一下这一个在acm方面的停滞,但我觉得花一个月学学自己喜欢的东西和想清楚自己的动机和未来发展没什么不好的。还是期待接下来的学习。
2022-10-04 14:05:09 153 2
原创 9.25 训练周记
今天打的第二场网络赛,一如既往但是今天没有乱提交个人认为还行吧 ,j题那个出题数太离谱了但是仍然没出....这周写了点题外也没学什么算法方面的东西,比赛也是坐牢五小时。感觉国庆后得好好赶赶,这周没啥好写的。
2022-09-25 21:47:34 156
原创 2022 ICPC网络赛 个人总结
之后就是H坐牢,是个写解释器的大模拟。但是包括我在内,队里没人想写,都想找技巧出题。也没什么好遗憾的,就是自己菜,不是状态好就能多出题的情况。上次省赛还能说说自己dp掌握不熟练,stl不熟练导致两题挂了,这次没有,我也不想找借口了。不需要安慰的话,也被打击的有段时间了,自己啥水平自己清楚。没什么好说的,很受打击,但是想了想还是打算坚持下去。希望大三可以拿个铜吧,代表两年的时间都去哪里了。不知道那C题卡的啥,memset还超时。最后改掉memset然后靠队友的idea改了代码a掉了。
2022-09-17 22:15:28 2379 3
原创 暑期训练总结
没看到群消息差点没了 这个假期的有效训练时间差不多为40天。这个暑假学习的算法不算多,但是也确实刷了挺多的题,其中很多时间也在学习动态规划,现在感觉还是顺其自然吧,基础的也学完了,题也写了挺多,虽然还是很多题不太会,但也不能把时间都花在动态规划上。 值得一提的是,这个暑假打了很多场比赛,每隔一两天的cf还有牛客的比赛,星期六和星期天固定会有acwing的周赛和力扣的周赛,力扣的周赛虽然总被说水,但是我目前也不能ak,也还是能学习到东西的就坚持打了。我发现,在这些比赛中,我能写到的
2022-09-04 19:14:28 136
原创 8.21 训练周记
这周说实话有点摸,题基本是靠比赛写的,洛谷基本没咋动。这周主要学习了一些简单的初等数论知识,感觉这一块还是比较欠缺的,才发现好多别人看起来是常识的数论知识,我却是学完了才明白。对于数论这方面,我的打算是先把基本需要掌握的知识过一遍,能理解,会简单的推导还能写代码就可以了。说实话,相对算法我对数学谈不上喜欢,甚至写多了还有点烦躁,这方面的深入知识还是交给队友吧。这周题目杂七杂八的写了一点,还复习了一下位运算,主要是位运算的特殊性质比较多,从来没见过的话真没想到还能这么写。特别是异或相关的运算。
2022-08-21 23:14:46 111
原创 6159. 删除操作后的最大子段和 并查集
本来是正向的思路,用二分找到删除点所在的区间,然后从set种删除原区间加入断开的两个区间和。不过有点麻烦,时间不够就没写出来。但是这题逆向的思考,用并查集每次添加一个集合,同时判断这个数有没有相邻集合,有就合并。
2022-08-21 19:40:10 173
原创 简单数论入门和基础数学知识(未完)
根据素数的定义,只含有1和本身的因数的数被称为素数,由此定义枚举小于这个数的所有数,如果出现能够整除的,说明这个数不是质数。,任何正整数皆有独一无二的质因子分解式。只有一个质因子的正整数为质数。因为1没有质因子,1与任何正整数(包括1本身)都是互质。可将正整数表示为一连串的质因子相乘,质因子如重复可以用。除了1以外,两个没有其他共同质因子的正整数称为。,其中指数ai是正整数。,那么N可以唯一分解成有限个质数的乘积。可表述为:任何一个大于1的。.....................
2022-08-17 02:27:16 1829
原创 4405. 统计子矩阵 前缀和/双指针
数据为500,常规枚举矩形加前缀和判断需要n^4的复杂度,超时。枚举矩形上下边界,使区间变成一维,此时这个一行的区间内选取矩形,矩形的长越大,和越大,具有单调性。r表示快指针,当矩形和大于k时左指针向右移动使区间变小。此时满足区间内的和均小于k,其所有的子矩形和都小于k,每次有r-l+1个子矩形。...
2022-08-14 23:19:32 122
原创 291. 蒙德里安的梦想 + 91. 最短Hamilton路径 状态压缩dp
本题的主要思路是,首先发现,要想满满当当的覆盖大矩形,那么横着摆放的长方形确定了,竖着摆放的也会确定。,此时横着摆放完的空白行在每一列必定是长度为偶数的。状态压缩dp,总而言之就是将本来很复杂的状态,表示成二进制的形式,然后进行状态转移。所以去求横着摆放,且满足条件的状态有多少种就行。dp的思路在注释种,还是很复杂的。............
2022-08-14 21:10:30 208
原创 8.14 训练周记
这周基本上没学什么新东西,洛谷上刷了动态规划的题,和打了几场比赛加补题。其他时间重新去刷了acwing的网课和对应的算法题。主要是连续打了好几场比赛,感觉基础不是很扎实一些比较基础还简单的算法比如前缀和和差分,双指针,图论等等,题目变形提升了思维量就想不到该用这些算法了。动态规划和模拟之类的题思路也不清晰,我认为是基础不扎实的原因,只是写了写模板简单的刷了几题不能算是学会这个算法,因为acwing报过了网课,就去把感觉思路不是特别清晰的算法又重新听了一遍,把模板也总结了,然后顺便把课后的题都写了一遍。...
2022-08-14 19:18:05 109
原创 AcWing 899. 编辑距离 线性dp
分两种,如果a当前字符不同于b的当前字符,那么替换成和b相同的,两者抵消,子问题变成求dp[i-1][j-1]。如果本来两字符就相同那么直接抵消,不需要操作。对于每个字符串的编辑距离。对a,b .设dp[i][j]表示a的前i个字符变成b的前j个字符需要的操作。插入一个与b当前字符相同的字符最优,相当于抵消了一个b的字符,子问题变成。很好的练习dp状态计算的题。当前i-1与b的j个字符匹配。最后不要忘记了边界处理,...
2022-08-14 17:09:08 164
原创 前缀和差分练习
而差分标记的本质是给左端点之后的所有数加上一个标记,再给右端点之后的数减去一个标记。那么我们查看这个点是否被标记,只需要看这个点之前的正标记数是否大于负标记数,如果正标记多,说明这个点被标记了。本题应从区间上每个元素出发,因为一个元素就是一个buff,必须少一个buff才能符合要求,每次会给一个区间的buff加上积分。所以我们可以将标记的区间存下来,并且升序排序,然后每次询问的时候二分查找正负标记数,判断是否相抵消。还有一种方法是将有交集的区间合并,根据右端点排序,然后二分查找这个点是否在被标记区间内。..
2022-08-14 03:50:48 153
原创 区间合并模板
给定 nn 个区间 [li,ri],要求合并所有有交集的区间。例如:[1,3] 和[2,6] 可以合并为一个区间[1,6]。共一行,包含一个整数,表示合并区间完成后的区间个数。接下来 n 行,每行包含两个整数 ll和 r。注意如果在端点处相交,也算有交集。输出合并完成后的区间个数。第一行包含整数 n。...
2022-08-14 03:31:01 68
原创 离散化模板 区间和
本来是个很简单的算法,没打算总结的,感觉随手就能敲,但是最近写的时候发现还是不熟练,偶尔会卡下壳,还是总结一下模板多练习一下比较好。存储所有出现的数,然后离散化,最后前缀和处理。......
2022-08-13 16:29:04 101
原创 P1018 [NOIP2000 提高组] 乘积最大 线性dp/记忆化搜索
这题输入数据很小,但是结果很大需要高精度,就用Python写了。子问题其实很好看出来,但是我最开始思考的状态是将序列划分为所有子段然后合并,这个用python切片很好实现。,但是不满足无后效性,然后就wa了。实际上子状态看作前n个元素的最大乘积就行了。......
2022-08-11 18:44:50 305
原创 8.10 线性DP练习
看到子序列和相邻可以想到动态规划,类比最长上升子序列的做法,可以枚举之前所有符合转移条件的状态进行比较然后对值最大的进行转移。但是这题数据量1e5不可能n^2的枚举了,但是发现本题的k很小,想到先用hash存储先前的数据然后由k枚举前面所有符合要求的位置,然后转移即可。想到使用动态规划,设dp[ j ][ i ]表示以arr[j]结尾,且当前元素为奇或偶的最长子段和。求所有子段的最大和。设dp为前n个元素的子数组能否每个都满足题目要求,则当前符合要求子数组和该子数组之前都符合要求,那么当前的数组符合要求。.
2022-08-10 21:30:26 156
原创 [NOIP2010 提高组] 关押罪犯 二分答案/二分图染色
因为要求所有冲突值最大的要最小,而且答案具有单调性,最大数值大了容易分配,小了不容易分配。容易想到二分枚举答案。然后就是如何判断这个答案是否合法。当前答案为mid,那么比mid大的冲突就不能发生,又因为有两个监狱,每个人必定在其中一个,那么比当前枚举的答案大的边(两个人的冲突值)构成一个二分图,也就是说有冲突(边)的两个犯人在相对的监狱,并且同一个监狱没有冲突则符合要求。所以想到用二分图染色判断比mid大的边构成的图是否构成二分,如果是则这个答案合法。...
2022-08-09 07:49:21 141
原创 8.8 训练周记
这周还打了很多比赛,acwing的,力扣的,cf的力扣的都有。我的感受是进步太慢了,之前写不出的题,现在依然写不出。这些场比赛,我的排位很一致的都在40%左右,还是很失望的,本来以为省赛到现在这段时间的练习可以突飞猛进,结果甚至是原地踏步。知道了问题所在,接下来我的规划是多写写实现题提升码力,并且限制短时间出题的能力,之前的练习几乎都是做电脑前磨磨蹭蹭的慢慢磨出一道题,感觉好像会写了,但是效率是真的很低,而且练习的时候题目会有标签,一看到标签就知道往哪方面思考,思维没有得到训练。这个地方也是需要注意的。..
2022-08-08 03:55:24 96 2
原创 [USACO06NOV]Bad Hair Day S && AcWing 4504. 字符串消除 单调栈和模拟
模拟栈,维护一个单调递减的栈 ,因为这样前面的人才能看见后面。
2022-08-06 17:44:18 180
原创 最近公共祖先LCA 倍增法
也就是二进制的形式,基于此,对于线性的过程,则可以通过2^x的跳跃实现log级别的复杂度。最暴力的LCA做法就是手动将两个节调整到同一高度,然后同时向上跳直到取到最近的公共祖先。倍增基于一个常识,任何一个数都能表示为2的幂之和的形式如。之后的跳转就只需通过从这个表中取值就行了。之前学习了Tanjan求LCA的解法,通过倍增预处理一个跳转表。...
2022-08-05 20:37:36 266
原创 8.4 思维构造
例如一个序列4 3 2 1 5 4 5由贪心可知必然是一次选择的区间越大越好,所以每次处理一个不包括0的不上升区间即可,因为对一个不上升区间来说,要使其全部为0最多需要操作max(l-r)次,因为比区间最大值小的数消去相当于是免费的。所以统计不上升区间的最大值即可。如果当作图论来看就是,减去给定图的一些节点使剩下的边数为偶数时最小消耗。如果边数本身就是偶数时,就不需要减去了,最小消耗为0.如果边数为奇数时,就要考虑减去奇数条边,且顶点消耗最小。对这种情况由两种方案,...
2022-08-04 10:24:34 540 1
原创 简述树状数组及逆序数
树状数组求解逆序数,思路在注释。主要是离散化数组后,将数组元素当作树状数组下标利用树状数组每次统计比当前元素大有几个。将树状数组当成差分数组来看,修改区间和查询单点(差分的前缀和)树状数组可以解决大部分区间上面的修改以及查询的问题,例如。,换言之,线段树能解决的问题,树状数组大部分也可以。其修改和查询都是log级别的。树状数组的核心操作主要是。.........
2022-08-03 22:59:47 112
原创 P2700 逐个击破 并查集/生成树
所以可以用并查集,每个联通块的祖先节点为一个被占领的城市。然后重新建图,删去最少价值的边也就意味着建最大价值的图,所以对边从大到小排序,然后并查集判断如果两个节点的祖先是否为被占领的城市。也就是让k个节点互不连通,很容易知道要产生这种情况,就必须将原图划分为k个互相独立的联通块,且每个联通块有且仅有一个k之一的节点。...
2022-08-02 21:55:42 183
原创 7.31 训练周记
我对Tarjan的理解,其核心就是维护一个存储dfs遍历顺序的dfn数组,和一个存储当前节点最早能回溯到的顺序的数组low,通过比较dfn和low可以知道这个节点是否可以有超过父节点的回边,根据这个性质,则可以找出割点和割边,并且可以判断出是否成环,并且对其缩点去环。最后就是感觉本周的学习状态不是很好,应该是作息不规律,晚上很晚睡,到下午才醒,虽然做电脑前也能学到十二点一点,保证学习时间,但是这几天脑子感觉就是一团浆糊,难以聚集注意力和思考,接下来还得调整一下作息,不然感觉浪费了好多时间。......
2022-07-31 20:37:38 79
原创 【模板】割点(割边)Tarjan
第一点很好实现,只需要判断一个节点由两个子树即可。麻烦在第二点,也就是判断一个非叶节点的子节点没有超过根节点的回边,什么意思?也就是1->2->3->4。这条路径,以2为父节点,子节点3没有回到超过2的节点的回边。而这个可以用Tarjan算法判断,定义一个记录dfs顺序的。其实跟强连通分量的Tarjan不太一样,但是基本思路还是差不多的。的时候则断开这个父节点,其他节点仍然可以由他的子节点通过所以。当子节点v最早可以回溯到超过父节点u的时候,也就是。数组,和一个记录最早能回到的编号的数组。.........
2022-07-28 23:01:13 536
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人