
动态规划
tunyalana
这个作者很懒,什么都没留下…
展开
-
字符串间相似距离
输入abcdabc输出:1代码:#include<bits/stdc++.h>using namespace std;string s,t;int dp[1011][1011];//dp[i][j] 的值代表的是str1[0...i-1]编辑为str2[0...j-1]的最小代价。int main(){ while(cin>>s) { cin>>t; for(int i=1;i<=s.size();++i) dp[i][0]=.原创 2021-01-29 21:45:30 · 117 阅读 · 0 评论 -
背包类问题
#include<bits/stdc++.h>using namespace std;int s,n;int w[1011];int dp[1011][1011];int main(){ while(cin>>s) { cin>>n; for(int i=1;i<=n;++i) { cin>>w[i]; } memset(dp,0,sizeof(dp)); dp[0][0]=1; for(int i=1.原创 2021-01-29 11:09:57 · 85 阅读 · 0 评论 -
字符串最长公共子序列与最长连续公共子序列
#include<bits/stdc++.h>using namespace std;string s,t;int dp[101][101];int main(){ while(cin>>s) { memset(dp,0,sizeof(dp)); cin>>t; for(int i=1;i<=s.size();++i) { for(int j=1;j<=t.size();++j) { if(s[i-1]==t.原创 2021-01-29 10:43:57 · 146 阅读 · 0 评论 -
序列最大上升个数or最大下降个数
#include<bits/stdc++.h>using namespace std;int a[101],dp[101];int n;int sheng(int k){ int ans=0; for(int i=0;i<=k;++i) { dp[i]=1; for(int j=0;j<i;++j) { if(a[j]<a[i]) { dp[i]=max(dp[j]+1,dp[i]); } ..原创 2021-01-29 10:06:49 · 180 阅读 · 0 评论 -
最大连续子序列和与最大上升子序列和
#include<bits/stdc++.h>using namespace std;long long a[10011],dp[10011];int main(){ int k; while(cin>>k) { if(k==0) break; int flag=0; for(int i=0;i<k;++i) { cin>>a[i]; if(a[i]>=0) flag=1; } if(flag==1) ..原创 2021-01-29 09:21:57 · 146 阅读 · 0 评论