C++
C++
amazingcode_lyl
人生能有几回搏,此时不搏何时搏
展开
-
子序列&子串问题
1、最长公共子序列 s=abcde t=ace 子序列是不连续的,最长公共子串是连续的 输出:3 int common_longest_string(string& s,string& t){ int s_len=s.size(),t_len=t.size(); vector<vector<int> > dp(s_len+1,vector<int>(t_len+1)); for(int i=0;i<s_len;i+原创 2021-09-15 10:13:09 · 263 阅读 · 0 评论 -
二维数组的前缀和
b[i][j]=b[i-1][j]+b[i][j-1]-b[i-1][j-1]+a[i][j]; #include<bits/stdc++.h> using namespace std; int main(){ int a[100][100]; int b[100][100]; memset(b,0,sizeof(b)); int n,m; cin>>n>>m; for(int i=0;i<n;i++){ ..原创 2021-09-12 17:46:49 · 219 阅读 · 0 评论 -
N个数中选择任意个异或和最大
两种方法: 1、dfs #include<cstdio> #include<iostream> using namespace std; #define maxn 1000 int arr[maxn]; int N ,ans = 0; void dfs(int step, int value){ if(step == N+1){ ans = max(ans, value); return; } dfs(step+1, value); dfs(step+1, va原创 2021-09-09 10:33:14 · 746 阅读 · 1 评论