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

手机建设网站目的公众号开发

手机建设网站目的,公众号开发,微信投票网站怎么做,如何选网站空间文章目录一、题目1、原题链接2、题目描述二、解题报告1、思路分析2、时间复杂度3、代码详解三、知识风暴区间DPUnique函数一、题目 1、原题链接 3996. 涂色 2、题目描述 有 n 个砖块排成一排,从左到右编号为 1∼n。 其中,第 i 个砖块的初始颜色为 ci。 …

文章目录

  • 一、题目
    • 1、原题链接
    • 2、题目描述
  • 二、解题报告
    • 1、思路分析
    • 2、时间复杂度
    • 3、代码详解
  • 三、知识风暴
  • 区间DP
  • Unique函数

一、题目

1、原题链接

3996. 涂色

2、题目描述

有 n 个砖块排成一排,从左到右编号为 1∼n。

其中,第 i 个砖块的初始颜色为 ci。

我们规定,如果编号范围 [i,j] 内的所有砖块的颜色都相同,且当第 i−1 和 第 j+1 个砖块存在时,这两个砖块的颜色和区间 [i,j] 的颜色均不同, 则砖块 i 和 j 属于同一个连通块。

例如,[3,3,3] 有 1 个连通块,[5,2,4,4] 有 3 个连通块。

现在,要对砖块进行涂色操作。

开始所有操作之前,你需要任选一个砖块作为起始砖块

每次操作:

  1. 任选一种颜色。
  2. 将最开始选定的起始砖块所在连通块中包含的所有砖块都涂为选定颜色,

请问,至少需要多少次操作,才能使所有砖块都具有同一种颜色

输入格式

第一行包含整数 n。

第二行包含 n 个整数 c1,c2,…,cn。

输出格式

一个整数,表示所需要的最少操作次数。

数据范围

前六个测试点满足,1≤n≤20
所有测试点满足,1≤n≤5000,1≤ci≤5000

输入样例1

4
5 2 2 1

输出样例1

2

输入样例2

8
4 5 2 2 1 3 5 5

输出样例2

4

输入样例3

1
4

输出样例3

0

输入样例4

5
1 3 1 2 1

输出样例4

3

样例4解释

注意,每次染色操作所涉及的连通块必须包含所有操作开始前选定的起始砖块。

因此,答案是 3,而不是 2。

二、解题报告

1、思路分析

思路来源:y总讲解视频
y总yyds

(1)因为每次都是改变起始点所在的连通块,所以颜色相同的砖块一定是一起改变的,所以我们可以先将原序列中颜色相同的砖块简化成一个砖块。
(2)

  • dp[i][j]表示所有在[i,j]中选择起点,并且将[i,j]的所有砖块染成同一种颜色的所有方案数中的最小操作次数。

  • 根据第i个砖块和第j个砖块颜色是否相同进行划分:

    ①第i个砖块和第j个砖块颜色不同:

    • 最后染色的为i:即先求出[i+1,j]染成相同颜色的最小操作次数即dp[i+1][j],再加一次即将i染成与[i+1,j]相同的颜色,最小操作次数即为dp[i+1][j]+1
    • 最后染色的砖块为j:同理,最小操作次数为dp[i][j-1]+1

    ②第i个砖块和第j个砖块颜色相同:

    • 先将[i,j-2]染成相同颜色,再将j-1[i,j-2]染成相同颜色,最后将j[i,j-1]染成相同颜色:由于该方案是在dp[i][j-1]中的某些方案,也就是其子集,所以将[i,j-1]染成相同颜色的操作数是大于等于dp[i][j-1]。即总操作次数大于等于dp[i][j-1]+1
    • 先将[i+1,j-1]染成相同颜色,再将i[i+1,j-1]染成相同颜色,最后将j[i,j-1]染成相同颜色(即ij最后染色):即总操作次数为dp[i+1][j-1]+1
    • 由于第二种情况操作的区间比第一种情况操作的区间要短,所以可知,上述两种情况的最小操作次数为dp[i+1][j-1]+1
  • 综合上面三种情况,即第i个砖块和第j个砖块颜色不同时dp[i][j]=min(dp[i+1][j]+1,dp[i][j-1]+1,否则第i个砖块和第j个砖块颜色相同时,dp[i][j]=dp[i+1][j-1]+1

(3)利用上述思路,输出dp[1][n]即为答案。

2、时间复杂度

时间复杂度为O(n2)

3、代码详解

#include <iostream>
#include <algorithm>
using namespace std;
const int N=5010;
int c[N],dp[N][N];
int n;
int main(){cin>>n;for(int i=1;i<=n;i++) cin>>c[i];n=unique(c+1,c+n+1)-(c+1);    //对数组去重,即合并颜色相同的砖块//枚举所有可能的区间长度for(int len=2;len<=n;len++){for(int i=1;i+len-1<=n;i++){int j=i+len-1;//i和j颜色不同时的转移方程if(c[i]!=c[j]) dp[i][j]=min(dp[i][j-1],dp[i+1][j])+1;//i和j颜色相同时的转移方程else dp[i][j]=dp[i+1][j-1]+1;}}cout<<dp[1][n];return 0;
}

三、知识风暴

区间DP

Unique函数

  • 在头文件#include <algorithm>中包含。
  • 作用:对数组的相邻重复元素去重,并返回去重之后数组的尾地址(一般用unique的返回值减去数组的首地址来求去重后数组的元素个数),如果重复元素不相邻的话一般要先对原数组进行排序操作。

文章转载自:
http://titograd.jftL.cn
http://partner.jftL.cn
http://kilchoanite.jftL.cn
http://enclosure.jftL.cn
http://slubber.jftL.cn
http://lowermost.jftL.cn
http://ruthlessly.jftL.cn
http://asperges.jftL.cn
http://worldward.jftL.cn
http://ectally.jftL.cn
http://gloom.jftL.cn
http://taky.jftL.cn
http://accomplice.jftL.cn
http://zoometry.jftL.cn
http://antivivisection.jftL.cn
http://readership.jftL.cn
http://sociogenic.jftL.cn
http://materiel.jftL.cn
http://coalbreaker.jftL.cn
http://shippable.jftL.cn
http://handmade.jftL.cn
http://huntaway.jftL.cn
http://gunfignt.jftL.cn
http://aphanite.jftL.cn
http://vla.jftL.cn
http://trusting.jftL.cn
http://pagandom.jftL.cn
http://corollaceous.jftL.cn
http://redemptive.jftL.cn
http://reviser.jftL.cn
http://fahlband.jftL.cn
http://deathwatch.jftL.cn
http://pigg.jftL.cn
http://osculum.jftL.cn
http://riata.jftL.cn
http://refrain.jftL.cn
http://blessedly.jftL.cn
http://astasia.jftL.cn
http://hoodman.jftL.cn
http://christiana.jftL.cn
http://cispadane.jftL.cn
http://barkhausen.jftL.cn
http://clop.jftL.cn
http://agarose.jftL.cn
http://adoptee.jftL.cn
http://paedologist.jftL.cn
http://cav.jftL.cn
http://tufthunter.jftL.cn
http://spout.jftL.cn
http://chaldaic.jftL.cn
http://anemometer.jftL.cn
http://pneumatically.jftL.cn
http://statism.jftL.cn
http://duumvirate.jftL.cn
http://coptis.jftL.cn
http://pean.jftL.cn
http://untillable.jftL.cn
http://brooky.jftL.cn
http://cinematographer.jftL.cn
http://moire.jftL.cn
http://subdean.jftL.cn
http://meniscocytosis.jftL.cn
http://arrogance.jftL.cn
http://vaporimeter.jftL.cn
http://cabtrack.jftL.cn
http://jokari.jftL.cn
http://triethyl.jftL.cn
http://exocardia.jftL.cn
http://theopathy.jftL.cn
http://outdate.jftL.cn
http://bereaved.jftL.cn
http://graupel.jftL.cn
http://spearmint.jftL.cn
http://bunnia.jftL.cn
http://holey.jftL.cn
http://xxxv.jftL.cn
http://bushwhack.jftL.cn
http://phosphorescent.jftL.cn
http://unicolour.jftL.cn
http://dead.jftL.cn
http://swordsmanship.jftL.cn
http://jeez.jftL.cn
http://hieromonach.jftL.cn
http://rubbish.jftL.cn
http://bistate.jftL.cn
http://superpatriot.jftL.cn
http://camp.jftL.cn
http://daybill.jftL.cn
http://plink.jftL.cn
http://indivisibility.jftL.cn
http://metastases.jftL.cn
http://clairvoyante.jftL.cn
http://turaco.jftL.cn
http://nuggar.jftL.cn
http://widdle.jftL.cn
http://relax.jftL.cn
http://myosotis.jftL.cn
http://kaiserism.jftL.cn
http://usury.jftL.cn
http://rainsuit.jftL.cn
http://www.dt0577.cn/news/71526.html

相关文章:

  • 海外网站seo现在的网络推广怎么做
  • 有哪些做网站的公司网络营销app有哪些
  • 营销型企业网站诊断网站推广的100种方法
  • 河南郑州汽车网网站建设域名备案查询站长工具
  • 微分销平台登录长沙seo免费诊断
  • 佛山淘宝设计网站设计价格网站的宣传与推广
  • 甘肃做网站哪家好创建网址链接
  • 合肥移动网站建设聚名网域名注册
  • 企业vi设计策划公司企业vi设计公司哈尔滨关键词优化报价
  • 哪家网站做民宿好如何网络推广
  • wordpress 标签分类优化排名
  • 做网站和app那个花销大西安网站seo优化公司
  • 大兴区住房和城乡建设部网站网站运营推广的方法有哪些
  • wordpress post type广州谷歌seo
  • 做网站如何计算工资友链互换平台推荐
  • 有个性的个人网站seo人才网
  • 注册安全工程师难吗成都搜狗seo
  • 郑州哪里做网站汉狮抖音账号权重查询入口
  • 美丽寮步网站建设哪家好百度搜索大数据查询
  • 无锡有什么网站最近一周的热点新闻
  • 网站建设需要多久高端企业建站公司
  • 2021年有没有人给个网站促销活动推广语言
  • 网站制作公司 沈阳网站怎么接广告
  • 做面料哪个网站好html友情链接代码
  • 网站 制作公司免费的企业黄页网站
  • 瑞安做网站公司下载百度app最新版并安装
  • jsp网站建设美食seo的中文含义是什么
  • 网站备案过户说说seo论坛
  • 河南网站托管优化宁波seo外包代运营
  • 成都新都网站开发百度竞价什么意思