
每日一题
文章平均质量分 56
dejavuuu~
寄蜉蝣于天地,渺沧海之一粟
展开
-
790.多米诺和托米诺平铺(简单动态规划)
简单动态规划——题目比较晦涩难懂,大致意思就是用这两种类型的块去填满一个2*n的块,保证每一列,都是被填充的。这道题使用动态规划的方法,在遍历的过程中,将遍历中的状态存储下来,方便接下来的遍历可以在之前存储的状态基础上得到当前的状态。这里对于某一列i,其存在四中状态1.整列为空,记为状态0。2.第一个方格被覆盖,记为状态1。3.第二个方格被覆盖,记为状态2。 4.两个方格都被覆盖,记为状态3。原创 2022-11-12 10:01:10 · 401 阅读 · 0 评论 -
POJ——日历游戏
题目的大致意思就是要让先手的获胜——先到达2006.11.4。这里的操作只对月和日进行操作,与哪一年的关系不大。对于任意一年都是一样的。先找一下规律:易知:11.3必赢,11.2必输,11.1必赢,10.31必输......可以看出输赢是交替的,month+day为偶数(此时轮到先手)则先手必赢,若为奇数(此时轮到先手),则必输。这里还有几种特殊情况。上述交替的原因是month+day的奇偶性也在交替,但是9.30,11.30的后面奇偶性不发生改变。原创 2022-11-10 20:33:26 · 731 阅读 · 0 评论 -
每日一题——到达终点数字
detal=sum-target,对于前面求和的某个数字x,使用加法对结果的影响是+x,而使用减法的影响是-x,则从加法改成减法,对结果sum的总影响就有2x。2.要求的是最小移动次数k,一开始都选择往同一个方向移动(即正方向),当求和sum刚好等于target时,则找到了;这是一个数学题,>______原创 2022-11-04 09:17:05 · 136 阅读 · 0 评论 -
每日一题——最大重复子字符串
不失一般性考虑 f[i]f[i] 该如何转移:由于 pp 的长度已知,每次转移 f[i]f[i] 时我们可以从 ss 中截取 以 ss[i]ss[i] 为结尾,长度为 mm 的后缀字符串 sub 并与 pp 匹配,若两者相等,说明 sub 贡献了大小为 11 的重复度,同时该重复度可累加在 f[i - m]f[i−m] 上(好好回想我们的状态定义),即有状态转移方程:f[i] = f[i - m] + 1f[i]=f[i−m]+1。最终所有 f[i]f[i] 的最大值即为答案。原创 2022-11-03 22:39:29 · 157 阅读 · 0 评论 -
每日一题——网络信号最好的坐标
塔 (1, 2) 强度参数为 5 ,在该点强度为 ⌊5 / (1 + sqrt(2)⌋ = ⌊2.07⌋ = 2。- 塔 (3, 1) 强度参数为 9 ,在该点强度为 ⌊9 / (1 + sqrt(1)⌋ = ⌊4.5⌋ = 4。- 塔 (2, 1) 强度参数为 7 ,在该点强度为 ⌊7 / (1 + sqrt(0)⌋ = ⌊7⌋ = 7。输入:towers = [[1,2,5],[2,1,7],[3,1,9]], radius = 2。经计算易知:坐标(2,1)的信号强度7+2+4=13是最大的。原创 2022-11-02 12:46:55 · 260 阅读 · 0 评论 -
每日一题——神奇字符串
很明显第一个数字1是由第一个数字1自己生成的,第二个数字2,是由第二个和第三个数字2生成的,此时我们将字符串初始化为"122",此时i=2,指向第二个2,接下来我们开始构造。代码中的flag就是实现这个功能的,因为每次加入新的元素到容器中,容器最后的那个元素一定是上一次加入的元素,用3减去容器中国的最后一个元素,就可以交替得到1和2。(不要误以为是3减去s[i-1],因为当两个相邻元素相等时,很明显会出现错误)知道要在容器中添加什么后,根据s[i]的值,得到添加的个数,直至将前n个元素填满。原创 2022-10-31 21:21:30 · 149 阅读 · 0 评论 -
每日一题——子数组的最小值之和
回到这道题上,我们只需要遍历数组,对于每个元素 arr[i],利用单调栈求出其左侧第一个小于 arr[i]的位置 left[i],右侧第一个小于等于 arr[i]的位置 right[i],则以 arr[i]为最小值的子数组的个数为 (i−left[i])×(right[i]−i),然后乘以 arr[i],最后求和即可。也即是说,子数组区间为 (0, 7)。注意,这里是开区间。子数组为 [3],[1],[2],[4],[3,1],[1,2],[2,4],[3,1,2],[1,2,4],[3,1,2,4]。原创 2022-10-28 20:39:48 · 213 阅读 · 0 评论