- 博客(17)
- 收藏
- 关注
原创 (CCF CAT 训练二)2023-2024年中国计算机应用技术大赛- 全国算法精英大赛
思路动态规划,有点麻烦的是需要连接成环,这里就是分三种情况,分别是第1次分别选择1,2,3所对应的卡片,再取三种情况的最大值,中间的转移方程比较简单,就是要枚举满足条件(任何一个位置的卡牌都要比相邻的两张卡牌的法力消耗值都高或都低)的状态就ok了。这里只需要求出一边的方案数目,总方案数目是两者乘积,如何求一边的方案数呢,可以想象位置有人状态设置,没人设置0,整个就是二进制串,需要求的是合法的二进制串数目,要求不能存在两个1相邻的情况,这不就是数位dp吗,使用dfs求。补充两道(CCF CAT训练一)题目。
2024-01-25 23:04:29
3666
10
原创 轮廓线dp
首先这道题可以使用常规的dp,枚举第i-1行的状态和第i行的状态进行状态转移。第一次接触轮廓线dp,在网上找一些资料感觉介绍很不清楚,看了这篇。然后是使用轮廓线dp,时间复杂度相比常规状压dp更优。后清晰了一些,主要是根据这道题目。使用图1的状态表示方式源程序。使用图3表示状态的方式源程序。
2024-01-25 11:42:41
811
1
原创 leetcode第122场双周赛
用两个对顶堆multiset,其中一个堆用于记录最小k(k+1)个值,另外一个堆用于记录最大k个值,而本题思路类似,其中一个堆用于记录最小k-1个值,另外一个堆用于记录最大dist+2-k个值,同时维护一个最小k-1个值之和。题目等价于在一个从下标1开始的长度为dist+1的滑动窗口中找k-1个最小值之和,在做这道题之前先做看这题。
2024-01-22 11:52:51
432
2
原创 2023第二届“清华社杯”大学生算法大赛
比赛没做出来,先进行并查集缩点(因为是无向图,有向图是targan),建立超级源节点,是环的节点值设置为1否则为0,再进行倍增,求每个路径值,查询过程先并查集判断是否处于同一图中,不属于同一图中直接输出,属于同一图中再求ab之间路径长度是否大于1(使用lca算法),大于1说明经过缩点存在多条路径。否则dp[i][j] = dp[i-1][j] + dp[i-1][j-1]-dp[last[arr[i]] - 1][j-1]比赛都没看题,后面再补充吧。
2023-12-04 12:22:10
1048
2
原创 多比特杯武汉工程大学第六届ACM新生赛(同步赛)
这次比赛只拿下五题,本来有机会七题的,看错题加上调试bug浪费很多时间,记录下做的题。的时间复杂度算法可以过,涨知识了,并查集,没啥好说的。tarjan缩点加上dfs。
2023-11-08 15:39:50
117
1
原创 480. 滑动窗口中位数
维护两个multiset,queMax和queMin,queMin记录小于等于中位数的数据,queMax记录大于中位数的数据,实现add和del两个函数,当前数小于等于queMin的最大值,插入queMin,否则插入queMax,同时需要维护queMin的size等于插入总数cnt/2或者cnt/2+1。用到c++中的multiset数据结构,和set不同的是multiset可以存相同元素。题目比较有意思记录一下做题思路。
2023-10-31 16:26:25
85
1
原创 leetcode369周赛
比赛过程中使用树状dp,一直设置二维dp[N][15], 发现无法做,需要设置三维dp[N][15][2],第二维记录前面已经进行多少次2操作,第三维记录当前选择1操作还是2操作,这和以往的树形dp不太一样,通常树形dp是父节点的操作不会影响子节点,这里会影响,所以要多设置一维记录上面节点的2操作影响,1操作不会影响,所以不用记录。从根节点开始,你必须收集所有金币。则dp[i] = min(dp[i-1], dp[i-2], dp[i-3]) = max(nums[i] - k, 0);
2023-10-30 11:29:06
63
1
原创 ssh免密登录服务器(客户端win10的wsl2,服务端为远程服务器)
ssh免密登录服务器(客户端win10的wsl2,服务端为远程服务器)1、在wsl2中的终端输入ssh-keygen后生成公钥和私钥,第一项提示是保存密钥的位置,按回车默认即可,接下来一直回车,会在默认位置生成id_rsa私钥和id_rsa.pub公钥,可能有known_hosts可信任服务器列表文件,authorized_keys 存放客户端公钥的文件,作为客户端只需要关心私钥和公钥即可,私钥自己保存,公钥需要发给服务器。2、使用scp命令发给服务器,不熟悉scp的同学可以稍微学学,如下图所示,第
2021-11-12 11:21:53
1475
原创 出现Failed to get convolution algorithm的解决方法
添加这段代码即可import tensorflow as tfconfig = tf.compat.v1.ConfigProto()config.gpu_options.allow_growth = Truesession = tf.compat.v1.InteractiveSession(config=config)
2021-06-13 17:30:13
106
原创 Leetcode 152. 乘积最大子数组
Leetcode 152. 乘积最大子数组问题描述示例解题思路代码实现(python3)问题描述给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例示例 1:输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。解题思路可以使用动态规划的方式,定义一个fma
2020-07-22 10:51:29
229
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人