给定 $n,m,k$ 和 $n$ 个数的序列 $a_i$,$m$ 次求区间 $[l,r]$ 中异或值为 $k$ 的子序列个数。
数据范围:$1\le n,m\le 10^5$,$0\le k,a_i\le 10^6$。
(分块做法) ...
分类:
其他好文 时间:
2020-08-08 17:29:32
阅读次数:
59
##题目 根据维基百科的定义: 插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列。每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置。如此迭代直到全部元素有序。 归并排序进行如下迭代操作:首先将原始序列看成 N 个只包含 1 个元素的有序子序列,然后每次迭代归并两个相邻 ...
分类:
其他好文 时间:
2020-08-05 14:31:17
阅读次数:
80
题目描述链接:https://leetcode-cn.com/problems/longest-palindromic-substring/ 解题思路:动态规划问题。 (1)状态标识dp[i][j]=0标识s[i]到s[j]这个子序列不为回文子串,dp[i][j]=1标识其为回文子串 (2)边界,对 ...
分类:
其他好文 时间:
2020-07-30 22:17:25
阅读次数:
96
[CF743E] Vladik and cards 一.前言 ? 把子序列看成子串还真是对不起了。题目链接 二.思路 ? 首先由每两个数字出现的次数之差不超过1可以知道,以下几点。对于一个可以记入答案的序列,有 所有的数字都在里面(除非部分数字只选一个,其余不选) 所有出现的数字的出现次数之中有一个 ...
分类:
其他好文 时间:
2020-07-30 22:16:31
阅读次数:
83
class Solution { int f[505][505]; public: int maxDotProduct(vector<int>& nums1, vector<int>& nums2) { int m=nums1.size(),n=nums2.size(); int ans=-1e9; ...
分类:
其他好文 时间:
2020-07-30 14:38:05
阅读次数:
55
归并排序 归并排序是将原始数组拆分成若干个子序列,将子序列排序完以后再合并起来。 public static int [] mergrSort(int[] arr){ Sort(arr,0,arr.length-1); return arr; }? public static void Sort(i ...
分类:
编程语言 时间:
2020-07-30 14:36:43
阅读次数:
67
题目描述链接:https://leetcode-cn.com/problems/longest-common-subsequence/ 解题思路:经典的LCS最长公共子序列问题:使用动态规划进行解题, (1)状态标识dp[i][j]标识text1[0]到text1[i-1]与text2[0]到tex ...
分类:
其他好文 时间:
2020-07-29 21:54:41
阅读次数:
78
AcWing 799. 最长连续不重复子序列 #include <bits/stdc++.h> using namespace std; const int N=1e6+10; int a[N],s[N]; int main(){ int n; cin>>n; for(int i=0;i<n;i++ ...
动态规划的核心是找到解题路径中的重复子问题,避免重复计算。 找出问题间的递归关系,用问题解决问题需要培养归纳的思维。 问题定义的好坏直接影响到可以定位出的重叠子问题的多少,可以找出的重叠子问题越多,问题定义越好。 下面是两种问题的定义,效率差距非常大。 解法1,超时: public final in ...
分类:
其他好文 时间:
2020-07-28 14:16:21
阅读次数:
73
s = "abc" t = "ahbgdc" class Solution: def isSubsequence(self, s: str, t: str): for i in range(len(s)): if s[i] in t: if i <= t.index(s[i]) : return s ...
分类:
编程语言 时间:
2020-07-28 10:16:14
阅读次数:
90