Zut_round 8(多维dp1)

news/2024/11/28 7:30:53/

A:
这一题我开始的想法是:先找出两个字符串的最长公共子序列的长度,在用两个字符串中的较大值减它。但交了好几次一直wa,就换了一种思路

#include <bits/stdc++.h>
using namespace std;
const int N = 1005;
char a[N],b[N];
int f[N][N];
int main()
{scanf("%s%s",a+1,b+1);int n=strlen(a+1);int m=strlen(b+1);for(int i=1;i<=n;i++)f[i][0]=i;for(int i=1;i<=m;i++)f[0][i]=i;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)if(a[i]==b[j])f[i][j]=f[i-1][j-1];elsef[i][j]=min(f[i-1][j],min(f[i][j-1],f[i-1][j-1]))+1;cout<<f[n][m]<<endl;return 0;
}

B:
把每次转移变化时的状态记录下来

#include <bits/stdc++.h>
using namespace std;
const int N = 1005;
char a[N], b[N], k[N];
int f[N][N],d[N][N];
void Print(int i, int j)
{if( i==0 || j==0 ) return ;if(!d[i][j] ){Print(i-1, j-1);cout<<a[i-1];}else if(d[i][j]==1 )Print(i-1, j);elsePrint(i, j-1);
}
int main()
{cin>>a>>b;int n1=strlen(a),n2 = strlen(b);for( int i=1; i<=n1; i++ ){for( int j=1; j<=n2; j++ ){if( a[i-1]==b[j-1] ){f[i][j]=f[i-1][j-1]+1;d[i][j] = 0;}else{if( f[i-1][j]>f[i][j-1] ){f[i][j]=f[i-1][j];d[i][j]=1;}else{f[i][j]=f[i][j-1];d[i][j]=-1;}}}}Print(n1,n2);return 0;
}

E:
这道题看了好一会儿,才懂。

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1005;
int k;
int main()
{cin>>k;if (k >36)cout<<"-1";else{int n1 = k/2;int n2 = k-n1*2;for (int i = 1; i <= n1; i++)printf("8");for (int i = 1; i <= n2; i++)printf("4");}return 0;
}

F:
一开始的时候,我想的是用两次sort排序,用第一的第二大的值乘第二的第一大的值,结果wa.
就换了一种思路,其实我也不知道有什么不同,就ac了

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define INF 1e18
const int N = 55;
ll a[N],b[N];
ll f[N];
ll n,m,maxx1,maxx2;
ll maxn;
int main()
{cin>>n>>m;for(int i=0;i<n;i++){cin>>a[i];}for(int i=0;i<m;i++){cin>>b[i];}for(int i=0;i<n;i++){f[i]=-INF;for(int j=0;j<m;j++){f[i]=max(f[i],a[i]*b[j]);}}sort(f,f+n);//sort(a,a+n);//sort(b,b+m);// maxn=a[n-2]*b[m-1];cout<<f[n-2]<<endl;return 0;
}

未完…


http://www.ppmy.cn/news/126020.html

相关文章

RCE漏洞演示,墨者靶场

#案列演示 打开墨者靶场&#xff0c;黑盒#命令注入执行分析 这个功能点有这么个功能&#xff0c;进行类似的像我们电脑上ping命令&#xff0c;这相当于就满足了命令&#xff0c;明显可能出现命令执行漏洞&#xff0c;可控变量和漏洞函数都存在。第一要去分析是什么操作系统&am…

DP1:数塔

// // main.cpp // dp1 // // Created by 布拉yuan on 2017/9/16. // Copyright © 2017年 Zan. All rights reserved. // #include <iostream> using namespace std; int a[110][110]; int dp[110][110]; int max(int a, int b){ return a > b ? …

C++编程计算平均数、众数和中位数,可以快速解决计算问题

说明 求N个整数的平均数&#xff0c;众数和中位数。 小知识&#xff1a; 众数 如有9个数&#xff1a;17 13 17 9 17 17 3 16 17  17出现的次数最多&#xff0c;即为这组数的众数。 此题保证众数是唯一的。中位数 如有9个数&#xff1a;102 170 96 90 97 106 110 182 100  将…

数字化时代,低代码+进销存管理系统让你省时省力

进销存系统是一种用于管理企业物资流动和库存的软件系统&#xff0c;可以帮助企业优化物资管理过程&#xff0c;提高效率&#xff0c;减少成本&#xff0c;从而提升企业的盈利能力。本文将详细介绍进销存系统的定义、功能、好处以及如何选择适合自己企业的进销存系统&#xff0…

得力桌面吸尘器——使用方式-备忘

就是这个 ↓ 功能有: 吸铅笔屑 &#xff08;迅速、吸得干净&#xff09;吸宿舍床单上的灰尘等蚊帐内吸蚊子&#xff08;一吸一个准&#xff0c;按蚊子体型大→小: 打晕→分尸&#xff0c;除了有噪音、只能在蚊帐内这种小空间内使用外&#xff0c;简直完美&#xff09; 淘宝…

业界最快的高转速马达,追觅科技V12无线吸尘器

随着科技的不断发展,智能家用电器也成为了消费者的重点关注产品,大家的消费理念也在发生变化,一些生活中的琐碎小事就交给智能家用电器来解决吧。近年来,国产无线吸尘器的发展非常迅速,打破了海外吸尘器高高在上的价格垄断,吸尘器已经是家庭打扫的必备产品了。在国内吸尘器市场…

中国手持式吸尘器行业市场供需与战略研究报告

【出版商】贝哲斯咨询 【免费目录下载】手持式吸尘器&#xff0c;体型小巧&#xff0c;携带及使用非常方便&#xff0c;一种介于普通家用吸尘器与便携式吸尘器之间的家庭清洁类产品&#xff0c;比较适合用来清洁较小的空间。 手持式吸尘器市场的企业竞争态势 该报告涉及的主要…

机器人莱克说明书_莱克吸尘器使用说明 莱克吸尘器的使用注意事项

莱克吸尘器大家应该不陌生,莱克吸尘器是我们国内高端清洁电器领先者,莱克的无线吸尘器很受大家的喜爱,很多人比较懒,不太爱打理,吸尘器简直就是懒人福音,下面我们来看一下莱克吸尘器使用说明,莱克吸尘器的使用注意事项。 莱克吸尘器使用说明 1、在使用之前应先看一下家里…