当前位置: 首页 > wzjs >正文

seo点击软件排名优化网站seo 优化

seo点击软件排名优化,网站seo 优化,立创商城,图书馆 网站建设一、题目: 二、题解一:朴素动态规划 O ( n 2 ) O(n^2) O(n2) 50 50 50%样例 1、解题思路 1)通过观察题目我们发现:题目意思为从序列中最少删除多少数,可以使得接下来的序列是接龙序列 2)因此我们可以将其转化为求最…

一、题目:

在这里插入图片描述

二、题解一:朴素动态规划 O ( n 2 ) O(n^2) O(n2) 50 50 50%样例

1、解题思路

1)通过观察题目我们发现:题目意思为从序列中最少删除多少数,可以使得接下来的序列是接龙序列

2)因此我们可以将其转化为求最长的接龙子序列的长度 x x x,用 ( n − x ) (n-x) (nx)即是答案

3)接着题目就变成了典型的 D P DP DP问题:求解最长接龙子序列

2、动态规划做题步骤

1)重述问题:

  • 找一个最长的接龙子序列

2)找到最后一步:

  • 选择了某个数 a [ x ] a[x] a[x],作为接龙序列的最后一位

3)去掉最后一步骤,原问题变成了什么?(如果可以就尝试用去掉最后一步的状态推导->最后一步

  • ( 1 − > x − 1 ) (1->x-1) (1>x1)中,找最长的接龙子序列

原问题的答案=(1~x-1)中,找最长的接龙子序列的长度+1(且最后一位需要满足条件)

4)考虑边界

3、关键代码解析

int col(int x)  //取出其第一位
{int temp=0;while(x){temp=x%10;x/=10;}return temp;
}//遍历找最后一位for(int i=1;i<=n;i++){int last=col(a[i]); //拿出其第一位dp[i]=1;  //默认长度为1for(int j=1;j<=i-1;j++) //从1~x-1中找倒数第二位{if(a[j]%10==last) dp[i]=max(dp[i],dp[j]+1);	//判断是否由倒数第二位推出}}int res=-1;for(int i=1;i<=n;i++) res=max(res,dp[i]);cout<<n-res<<'\n';

三、题解二:DP优化 O ( n ) O(n) O(n)

通过观察我们发现:最长接龙子序列的最后一位仅仅是(1~10),且它具有后效性
因此我们可以考虑简化dp数组

1、解题思路

1)我们可以令dp[d]为以d为结尾的最长接龙子序列的长度

  • 比如dp[1]表示以1为结尾的最长接龙子序列的长度

2)现在我们枚举到了a[i]这个数,它的最高位是x,最后一位是y

在这里插入图片描述

3)此时我们发现,这个值有且只有两种情况

  • 找到一个以x为结尾的一个序列,将其接上去,这样原本结尾是x的序列,就变成了结尾是y的序列(此时dp[y]=dp[x]+1)
  • 或者不接上去,那么dp[y]的值也不会受其影响(也就意味着此时有以y为结尾的已经更优了)(此时dp[y]不变)

4)因此状态转移方程应该为: d y [ y ] = m a x ( d p [ y ] , d p [ x ] + 1 ) dy[y]=max(dp[y],dp[x]+1) dy[y]=max(dp[y],dp[x]+1)

2、关键代码解析:

  • 1# 获取一个数字的最高位与最低位数
  • 2#选择接入以first为结尾,使得以end为结尾 + 1 +1 +1
  • 3# 不接入,以end为结尾的已经优于以fir为结尾的
 //遍历找最后一位for(ll i=1;i<=n;i++){ll first=col_fir(a[i]); //拿出其第一位和最后一位ll end=a[i]%10;//选择接入以first为结尾,使得以end为结尾+1 ///不接入,以end为结尾的已经优于以fir为结尾的dp[end]=max(dp[end],dp[first]+1); }ll res=-1;for(ll i=1;i<=9;i++) res=max(res,dp[i]);cout<<n-res<<'\n';

3、完整代码解析:

#include <bits/stdc++.h>
using namespace std;typedef long long ll;
const int N=2e5+7;
ll a[N];
ll dp[17];//表示以i为结尾在最长序列ll col_fir(ll x)  //取出其第一位
{ll temp=0;while(x){temp=x%10;x/=10;}return temp;
}void solve()
{ll n;cin>>n;for(ll i=1;i<=n;i++) cin>>a[i];//通过//题目意思为从序列中最少删除多少数,可以使得接下来的序列是接龙序列//因此我们可以将其转化为求最长的接龙子序列的长度x,(n-x)即是答案//遍历找最后一位for(ll i=1;i<=n;i++){ll first=col_fir(a[i]); //拿出其第一位和最后一位ll end=a[i]%10;//选择接入以first为结尾,使得以end为结尾+1 ///不接入,以end为结尾的已经优于以fir为结尾的dp[end]=max(dp[end],dp[first]+1); }ll res=-1;for(ll i=1;i<=9;i++) res=max(res,dp[i]);cout<<n-res<<'\n';
}  int main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int _=1;while(_--) solve();return 0;
}
http://www.dtcms.com/wzjs/471001.html

相关文章:

  • 东莞网站建设推广公司优化大师电脑版
  • 免费学做美食视频网站seo招聘网
  • 企业建站系统信息樱桃bt磁力天堂
  • 免费二级域名网站襄阳seo优化排名
  • 电信网站备案委托书百度入口的链接
  • 相宜本草网站建设广告联盟怎么加入
  • 网站制作的评价标准百度框架户开户渠道
  • 做美陈3d模型网站入门seo技术教程
  • 做外贸方面的网站个人网站如何优化关键词
  • 上海公共招聘网怎么打不开一键优化大师下载
  • 邢台专业做网站报价2022年列入传销组织最新骗法
  • 微信小网站怎么做南京今日新闻头条
  • 邢台网站建设免费做网站排名腾讯云域名注册官网
  • 南京建设交易中心网站做互联网项目怎么推广
  • 怎样查看网站日志舆情监测
  • 金华网站建设公司哪家好企业网站seo排名
  • 雄县有做网站的吗网站关键词快速排名软件
  • 动态网站建设包括哪些方面seo优化服务公司
  • 建站房的公司百度seo快速排名优化
  • 小程序招商加盟seo网络培训机构
  • 快速网站郑州网站开发顾问
  • 协和医院网站建设目标seo业务培训
  • 一流的永州网站建设阿里云注册域名
  • 现在企业做网站一般用什么框架上海最近三天的新闻
  • 建好网站后最怎么维护临沂森工木业有限公司
  • 一键网站模块简单的网站制作
  • 网站开发模板用什么一个完整的产品运营方案
  • 网站设计有限公司制作网页的流程
  • 网站名称重要吗品牌宣传推广方案
  • 通过网站做外贸重庆seo报价