(CodeForces - 607B)Zuma

【收藏向】模拟电子技术超强知识点总结 20小时不挂科 模电真的有难度的一门课,一定要好好学… 用的教材是华科康华光版,其他版本教材也可参考,内容是差不多的。 话不多说直接上思维导图干货(后有思维导图高清原图链接) 1 绪论 2 运算放大器 3 二极管及其基本电路 4 场效应管及其放大电路 5 双极结型三极管及其放大电路 三种组态总结看不清,给个特写 发现虽然csdn上传的是原图,但是显示的图片不是特别清晰,在此贴出B站知乎地址,第五章之后的内容都在上面,还可以查看原图 ———————————————————— B站专栏地址(可以点击查看原图) htt 阅读详情

(CodeForces - 607B)Zuma

time limit per test:2 seconds
memory limit per test:512 megabytes
input:standard input
output:standard output

Genos recently installed the game Zuma on his phone. In Zuma there exists a line of n gemstones, the i-th of which has color ci. The goal of the game is to destroy all the gemstones in the line as quickly as possible.

In one second, Genos is able to choose exactly one continuous substring of colored gemstones that is a palindrome and remove it from the line. After the substring is removed, the remaining gemstones shift to form a solid line again. What is the minimum number of seconds needed to destroy the entire line?

Let us remind, that the string (or substring) is called palindrome, if it reads same backwards or forward. In our case this means the color of the first gemstone is equal to the color of the last one, the color of the second gemstone is equal to the color of the next to last and so on.

Input

The first line of input contains a single integer n (1 ≤ n ≤ 500) — the number of gemstones.

The second line contains n space-separated integers, the i-th of which is ci (1 ≤ ci ≤ n) — the color of the i-th gemstone in a line.

Output

Print a single integer — the minimum number of seconds needed to destroy the entire line.

Examples

input

3
1 2 1

output

1

input

3
1 2 3

output

3

input

7
1 4 4 2 3 2 1

output

2

Note

In the first sample, Genos can destroy the entire line in one second.

In the second sample, Genos can only destroy one gemstone at a time, so destroying three gemstones takes three seconds.

In the third sample, to achieve the optimal time of two seconds, destroy palindrome 4 4 first and then destroy palindrome 1 2 3 2 1.

题目大意:对于一个数字序列,每一次攻击可以消灭一个回文串(如果只有一个字符也算一个回文串需要攻击一次),消灭一串回文串后,两端没有消灭的数字序列会接在一起。问最少需要几次攻击可以完全消灭这个数字序列。

思路:题目中提示回文串是最外边两端数字相同,再考虑次外边两端数字相同。因此考虑区间[i,j],以i为研究对象,设f[i][j]表示将区间[i,j]数字全部消去所需要的最少攻击次数。那么最最一般的情况(就是单独一个字符成一个回文串)便是f[i][j]=f[i+1][j]+1,如果两端的数字相等(a[i]==a[j])那么f[i][j]=min(f[i][j],f[i+1][j−1]),当然这里i+1可能大于j-1所以需要特判。上述那种情况也可能不是最优解,先消灭中间的回文串会更优,所以枚举k(i<k<j)如果(a[i]==a[k]),那么f[i][j]=min(f[i][j],f[i+1][k−1]+f[k+1][j]),同理这里i+1可能大于k-1所以需要特判。

#include<cstdio>
#include<algorithm>
using namespace std;

const int maxn=505;
int a[maxn],f[maxn][maxn];

int main()
{
    int n;
    while(~scanf("%d",&n))
    {
        for(int i=1;i<=n;i++)
        {
            scanf("%d",a+i);
            f[i][i]=1;
        }
        for(int len=2;len<=n;len++)
            for(int i=1;i+len-1<=n;i++)
            {
                int j=i+len-1;
                f[i][j]=f[i+1][j]+1;
                if(a[i]==a[j])
                {
                    if(i+1>j-1) f[i][j]=min(f[i][j],1);
                    else f[i][j]=min(f[i][j],f[i+1][j-1]);
                }
                for(int k=i+1;k<j;k++)
                    if(a[i]==a[k])
                    {
                        if(i+1>k-1) f[i][j]=min(f[i][j],1+f[k+1][j]);
                        else f[i][j]=min(f[i][j],f[i+1][k-1]+f[k+1][j]);
                    }
            }
        printf("%d\n",f[1][n]);
    }
    return 0;
}
【ATC/DTC方法第四期】GOT09-dT-tao 昼夜温度周期模型方法介绍(含Python代码实现) GOT09-dT-tao 模型是一种经过简化和参数固定的 昼夜温度周期模型(Diurnal Temperature Cycle, DTC)。它从 GOT09 模型(Göttsche and Olesen, 2009)衍生而来,但更加轻量化,更适合在数据不足或参数估计困难的情境下使用。 阅读详情

相关推荐

从理论到实践:基于Zemax的高分辨率生物显微镜光学系统仿真与优化指南

本文详细介绍了基于Zemax的高分辨率生物显微镜光学系统仿真与优化全流程。从阿贝分辨率公式、柯勒照明等理论基础出发,逐步讲解Zemax建模、像差优化、制造可行性分析等核心步骤,并提供常见问题解决方案。通过实际案例展示如何将理论设计转化为可制造的优化方案,帮助工程师掌握从仿真到实际应用的关键技术。

weixin_29229989的博客 483

Codeforces_607B:Zuma(区间DP)

题目大意给定长度为n的一个序列ai,每次操作可以消除一个回文串,问至少需要几次操作可以将整个序列消除. 解法为区间dp,设f[i][j]表示消除第i至j项所需的最小操作次数,转移的话f[i][j]可以拆分成f[i][k]和f[k+1][j]两段,即相当于分成两段各自消除,而当a[i]==a[j]时,则f[i][j]除了前面的那种消法外,还可以看作在消除了第i+1至j-1个元素后顺带消除了外层的第

OMRailgun 544

Python实战:用BM3D算法给老照片去噪(附完整代码+数据集)

本文详细介绍了如何使用Python和BM3D算法为老照片进行高效去噪。通过完整的代码实现和数据集,读者可以快速掌握图像去噪技术,包括环境配置、算法原理、参数调优及效果评估,帮助恢复珍贵老照片的清晰度。

weixin_29057237的博客 239

CF607B Zuma(区间DP)

题目链接:Zuma - 洛谷 分析:这也是一道区间DP题,不过这道题我感觉这道题动态转移挺难想到的,一会我会仔细分析转移过程 设f[i][j]表示把i~j的珠子移除的最短时间,那么当我们更新f[i][j]时会遇到两种情况: 一种是a[i]==a[j],这种情况的动态转移方程是f[i][j]=f[i+1][j-1],为什么会是这种情况呢?这也是本道题比较难想的地方,我们假设对于区间[i+1,j-1],若想移除完该区间的珠子至少移除m次,因为我们每次移除都是移除一个回文子串,那么我们容易知道当移除完m

AC__dream的博客 626

技术解析:ChangeFormer——基于Transformer的孪生网络在遥感变化检测中的创新应用

本文深入解析了ChangeFormer模型在遥感变化检测中的创新应用,该模型基于Transformer架构和孪生网络(Siamese Network),显著提升了变化检测的精度和效率。通过详细的技术实现和实战经验分享,展示了其在建筑物变化、森林监测等场景中的卓越表现,为相关领域的研究和应用提供了有力工具。

weixin_29102619的博客 497

基于FPGA的最大功率点跟踪(MPPT)系统开发 - MATLAB实现

最大功率点跟踪(Maximum Power Point Tracking,MPPT)是太阳能光伏系统中的重要技术,它通过调整太阳能电池板的工作点,以最大化输出功率。通过FPGA系统设计和硬件验证,我们可以实现太阳能光伏系统中的最大功率点跟踪。这种基于FPGA的MPPT系统具有高性能和灵活性,适用于太阳能光伏系统中的实时最大功率点跟踪。MPPT算法的选择对于系统的性能至关重要。在本文中,我们选择使用Perturb and Observe(P&O)算法,它是一种常用的基于光伏阵列电压和电流测量的迭代算法。

CoderExtra的博客 387

Codeforces - Zuma

题目链接:Codeforces - Zuma 对于区间 [l,r] 如果两端的相等,那么可以直接变为区间[l+1,r-1] 否则我们可以枚举区间的划分方案。 AC代码: #pragma GCC optimize("-Ofast","-funroll-all-loops") #include<bits/stdc++.h> //#define int long long using n...

青烟绕指柔的博客 592

嵌入式工程师成长之路(7)——算法学习

算法大全1、风仲达——算法笔记2、坐在马桶上学算法3、啊哈算法4、深度强化学习实验室。

云轩阁 4万+

CF 607B Zuma(区间dp,回文子串数量)

Zuma - 洛谷 分析:运用分析元区间开始,逐步思考区间合并与状态转移方程 len==1时,每个元区间被消耗时间都是1 len==2时,如果两个相等,消耗时间为1,两个不相等,消耗时间为2 len==3时,会有一个2区间和一个1区间合并(枚举中断点),如果左右端点相等,dp[i][j]=dp[i+1][j-1] ... 通过上面的规律发现,分析图如下 状态计算/子集划分: 根据枚举区间大小,我们发现区间合并时由两个独立的,大小不一定相等的,子区间合并。 所以,状态转移方程应该是枚举..

qq12323qweeqwe的博客 379

uniapp [安卓苹果App端] - 实现APP开发后台保活+息屏后台持续运行效果,强制后台保活手机黑屏后进程存活后台保持网络连接或持续定位等功能提供支持(app后台运行休眠仍然可以确保一直运行)

uniapp APP开发后台保活,Uniapp-APP后台保活插件(安卓苹果ios后台保活)保证应用在后台继续运行,uniapp实现app保活 保后台运行 避免系统主动杀进程,如何让安卓APP一直在后台运行?uniapp 安卓 APP 后台持续运行(保活)iOS App后台保活,Android 后台运行白名单实现保活,保活息屏后台运行,uniapp后台保活,uniapp熄屏 后台运行,Android/ios进程保活/息屏后后台保持定位、网络运行,uniapp在android ios保活,挂后台可运行,安卓A

🏆 前端领域优质创作者 1万+

PCL 模型滤波器【2025最新版】

根据给定的模型系数在点云中提取对应于模型的点云数据。博客长期更新,本文最新更新时间为:2025年6月17日。

点云侠的博客 4384

「Codeforces」607B (区间dp)

题意:原题在这 Genos最近在他的手机上下载了祖玛游戏。在祖玛游戏里,存在n个一行的宝石,第i个宝石的颜色是Ci 。这个游戏的目标是尽快的消灭一行中所有的宝石。 在一秒钟,Genos能很快的挑选出这些有颜色的宝石中的一个回文的,连续的子串,并将这个子串移除。每当一个子串被删除后,剩余的宝石将连接在一起,形成一个新的行列。你的任务是:求出把整个宝石串都移除的最短时间。 让我们给你一个提...

arjxt6474的博客 257

不提交也不释放的事务,数据库连接还有可能被复用

摘要 实验发现Spring事务管理下,未提交事务的数据库连接池连接仍可被复用,这与传统认知相悖。通过配置HikariCP连接池(最大2连接)并设计测试接口,观察到未提交事务的连接会被后续请求复用。这可能导致GTID错误(当MySQL开启GTID且混用事务/非事务表时)以及数据修改丢失问题。研究揭示了Spring事务管理机制与连接池交互的特殊行为,对高并发系统设计具有重要启示。

蔡定努 178

Codeforces - 607B.Zuma (DP)

Codeforces - 607B.Zuma (DP) 题目链接 题目 给你一个n和一个有n个元素的数组,你每次可以拿走一个连续的子串,如果这个串是回文串,则拿走的花费为1,然后剩下的连接起来,问你拿完整个串的最小花费。 解析 感觉和真正的祖玛游戏还是有点差别,或者说一开始有点小小的误解。这个题目说的是回文串的花费为1,所以我们是要尽可能的去找回文串。 递归的思路: 递归函数参数是串的两个端...

zxzxin的博客~ 498

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Codeforces607B Zuma 区间DP

Codeforces607B Zuma 题面: 一串数字,每次消去一个回文的子串需要花费一单位的时间,问把整个数字串消去最少需要多少单位时间。 解题过程: 开始写的区间DP在消去某些子串后产生新回文子串后无法处理 对于长度为一的串,初始需要一的时间。状态转移的时候: *F[ l ][ r ] = 1 + F [l +1][ r ] *F[ l ][ r ] = min { ...

Hagtaril 413

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【Codeforces 607 B. Zuma】

CF607B 容易看出是区间dp dp[l][r]代表 l 到 r 长度的最小代价 就是需要特判长度为 2 不然如果arr[l] == arr[r] dp[l][r] 可以直接由dp[l+1][r-1]转移过来 然后再枚举左右两部分枚举最小就行 /* if you can't see the repay Why not just work step by step rubb...

我是谁 --- 卡比兽 262

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

codeforces 607B Zuma 区间dp

题目如下: B. Zuma time limit per test 2 seconds memory limit per test 512 megabytes input standard input output standard output Genos recently installed the game Zuma o

raychen123的博客 409

CodeForces 607B Zuma

区间dp

SHOJYS的博客 338

[区间DP] Zuma CodeForces 607B

**[区间DP] Zuma CodeForces 607B** 题目大意:给你一个数字串,每次只能删除一个回文串,问最少多少次可以删完。 分析:区间dp,特殊处理的必然是s[i]==s[j],这时候dp[i][j]=dp[i+1][j-1],因为这两个字符可以 和区间[i+1,j-1]的某个字串构成一个回文串,可以“消掉”。对于区间[i,j],枚举分割点,k。 dp[i][j

Enter 465

Codeforces 607B Zuma (区间dp)

B. Zuma time limit per test:2 seconds memory limit per test:512 megabytes Genos recently installed the game Zuma on his phone. In Zuma there exists a line ofngemstones, thei-th of which has colo...

Tc的专栏 424

Codeforces 607B:Zuma DP

B. Zuma time limit per test 2 seconds memory limit per test 512 megabytes input standard input output standard output Genos recently installed the game Zuma on his phone

696

codeforces 607B. Zuma

Genos recently installed the game Zuma on his phone. In Zuma there exists a line of n gemstones, the i-th of which has color ci. The goal of the game is to destroy all the gemstones in the line as

新月 1448

CodeForces-607B Zuma

B. Zuma time limit per test 2 seconds memory limit per test 512 megabytes input standard input output standard output Genos recently installed the game Zuma on his phone

十分残念的博客 1338

Codeforces 607 B-Zuma 【区间DP】

题目来源:https://codeforces.com/problemset/problem/607/B ★打牌憨憨开始写区间DP啦~ 翻译: 有n个点按顺序排成一行,你现在要 消去所有的点 。每次只能消去一段连续的 回文子序列,问最少需要消去多少次? 思路: 我们可以令 dp[ i ][ j ] 表示 消去区间( i , j )所需的最少步数 初始化dp为inf,我们可以得到初始条件,d...

HungTeen的博客 263

[Codeforces 607B Zuma]区间DP

[Codeforces 607B Zuma]区间DP分类:区间DP 1. 题目链接[Codeforces 607B Zuma]2. 题意描述给出一个长度为n的序列c[i],每次操作可以删去一个回文子串,求将整个序列删除完需要的最少操作数。 (1 ≤ n ≤500,1≤ci≤n)(1 \le n \le500, 1\le c_i\le n)3. 解题思路比较直观的区间DP,dp[i][j]表示从i到

Fighting! 679

CodeForces-607B Zuma(dp)

Genos recently installed the game Zuma on his phone. In Zuma there exists a line of n gemstones, the i-th of which has color ci. The goal of the game is to destroy all the gemstones in the line as qui...

weixin_43896680的博客 246
上一篇: (CSU - 1974)神奇药水
下一篇: (CodeForces - 416C)Booking System
Hold_My_Own
博客等级 码龄10年 122粉丝 177原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值