ICode9

精准搜索请尝试: 精确搜索
  • P2690 Apple Catching G2021-11-06 10:00:15

    题目链接 首先来个爆搜再说。 定义 dfs(int i,int pre,int ans) 表示当前是 \(i\) 时间,上一次在 \(\rm pre\) 苹果树,已经移动 \(\rm ans\) 次的最大苹果数量。 如果 i>t ,返回 \(0\) 即可。 如果上一次苹果树的位置跟当前一样,就不用移动,返回dfs(i+1,a[i],ans)+1。 如果上一次跟当

  • Catching Cheaters CodeForces - 1446B2021-06-06 09:33:43

    原题链接 考察:线性DP 错误思路:   求出最长公共子序列再dfs回溯枚举长度. 错误原因:   不一定只存在一个最长公共子序列.比如样例2. 正确思路:   是dp(...),定义 f[i][j] 为以1~i,1~j构成的最长公共子序列的最大S值,且A子串以i结尾,b子串由j结尾.这里其实类似最大连续子段

  • Codeforces1446 B. Catching Cheaters(dp,最长公共子序列)2021-05-02 23:30:49

    题意: 解法: 令d[i][j]表示S串以i结尾的子串,T串以j结尾的子串,的最大值. 1.如果s[i]==t[j],那么可以匹配,d[i][j]=d[i-1][j-1]+2. 2.如果s[i]!=t[j],那么不能匹配,此时对于d[i-1][j]和d[i][j-1], 只会增加一个子串的长度,LCS不会变化,因此d[i][j]=max(d[i-1][j],d[i][j-1])

  • CodeForces 1447D :Catching Cheaters 字符串DP2021-04-23 11:01:39

    传送门 题目描述 给我们两个字符串,让我们从中选出两个字串,算出它们的最大公共子序列长度。然后将它乘4在减去两个字串的长度。问你这个数最大是多少。 分析 我们可以把这个式子转换为2 * LIS - a的剩余长度 - b的剩余长度,然后就可以设计dp方程了 如果当前这一位匹配了,那么答

  • codeforces 1446B - Catching Cheaters (dp)2020-11-19 18:33:42

    题目链接:https://codeforces.com/problemset/problem/1446/B \(LCS\) 的改版, \(f[i][j]\) 表示以 \(i,j\) 结尾的最大答案, 如果 \(A[i] == B[j]\) ,那么贡献就会加 \(2\), 否则贡献会减 \(1\) #include<cstdio> #include<cstring> #include<algorithm> #include<iostream&

  • Codeforces Round #683 (Div. 2, by Meet IT) D. Catching Cheaters (DP)2020-11-16 21:33:10

    题意:给你两个字符串,每次取它们的子串C和D,然后求LCS,得到的贡献为\(4*LCS(C,D)-|C|-|D|\),求最大贡献. 题解:首先应该了解\(O(n^2)\)的LCS的dp写法,然后在此基础上稍加改动,对于子串\(C\)和\(D\),如果\(c[i]=d[j]\),那么他们的LCS应该\(+1\),长度也分别\(+1\),所以\(dp[i][

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有