「杂题乱刷2」CF607B

news/2024/7/4 7:38:10/文章来源:https://www.cnblogs.com/wangmarui/p/18280664

代码恢复训练 2024.7.2.

链接 (codeforces)

链接 (luogu)

一道很基础的区间 dp。

只讲状态定义,\(dp_{i,j}\) 表示 \(i \sim j\) 区间需要的最少消除次数。

时间复杂度 \(O(n^2)\)

点击查看代码
/*
Tips:
你数组开小了吗?
你MLE了吗?
你觉得是贪心,是不是该想想dp?
一个小时没调出来,是不是该考虑换题?
打 cf 不要用 umap!!!记住,rating 是身外之物。该冲正解时冲正解!Problem:算法:思路:*/
#include<bits/stdc++.h>
using namespace std;
//#define map unordered_map
#define re register
#define ll long long
#define forl(i,a,b) for(re ll i=a;i<=b;i++)
#define forr(i,a,b) for(re ll i=a;i>=b;i--)
#define forll(i,a,b,c) for(re ll i=a;i<=b;i+=c)
#define forrr(i,a,b,c) for(re ll i=a;i>=b;i-=c)
#define lc(x) x<<1
#define rc(x) x<<1|1
#define mid ((l+r)>>1)
#define cin(x) scanf("%lld",&x)
#define cout(x) printf("%lld",x)
#define lowbit(x) (x&-x)
#define pb push_back
#define pf push_front
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define endl '\n'
#define QwQ return 0;
#define db long double
#define ull unsigned long long
#define lcm(x,y) x/__gcd(x,y)*y
#define Sum(x,y) 1ll*(x+y)*(y-x+1)/2
#define aty cout<<"Yes\n";
#define atn cout<<"No\n";
#define cfy cout<<"YES\n";
#define cfn cout<<"NO\n";
#define xxy cout<<"yes\n";
#define xxn cout<<"no\n";
#define printcf(x) x?cout<<"YES\n":cout<<"NO\n";
#define printat(x) x?cout<<"Yes\n":cout<<"No\n";
#define printxx(x) x?cout<<"yes\n":cout<<"no\n";
ll t;
ll n;
ll a[510];
ll dp[510][510];
void solve()
{cin>>n;forl(i,1,n)cin>>a[i];forl(i,1,n)forl(j,1,n)dp[i][j]=1e18;forl(i,1,n)dp[i][i]=1;forl(i,1,n-1){if(a[i]==a[i+1])dp[i][i+1]=1;elsedp[i][i+1]=2;}forl(len,2,n-1){forl(i,1,n-len){if(a[i]==a[i+len])dp[i][i+len]=min(dp[i][i+len],dp[i+1][i+len-1]);forl(j,i,i+len-1)dp[i][i+len]=min(dp[i][i+len],dp[i][j]+dp[j+1][i+len]);}}cout<<dp[1][n]<<endl;
}
int main()
{IOS;t=1;//	cin>>t;while(t--)solve();/******************//*while(L<q[i].l) *//*    del(a[L++]);*//*while(L>q[i].l) *//*    add(a[--L]);*//*while(R<q[i].r) *//*	  add(a[++R]);*//*while(R>q[i].r) *//*    del(a[R--]);*//******************/QwQ;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/736547.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

stable diffusion ControlNet使用介绍与进阶技巧

ControlNet是什么?固定构图、定义姿势、描绘轮廓、单凭线稿就能生成一张丰满精致的插画……它几乎无所不能。 有人把它称为AI绘画界的“革命性”突破,但在我看来,它不过是StableDiffusion迈向“工业化”的第一步。 ControlNet扩展与模型下载地址 扩展地址: https://github.…

前端实现根据模版导出word【docxtemplater】

场景 有的时候我们需要根据后端提供的数据,然后结合word模版来生成word。我们可以使用第三方库docxtemplater 效果代码 App.vue <template><div class="app"><el-divider content-position="center">1.基本使用</el-divider><…

Mysql MVCC多版本解析

1.首先各行数据,都有一个trx_id(事务ID)和回滚指针,形成一个链表数据结构的数据。其实这便是undo.log(回滚日志) 2.当select查询数据的时候,还会生成视图数据。 其中包含未提交的最小事务、未提交事务ID数组、应该分配下一个的事务ID、创建视图的事务ID 首先会生成read …

Linux的访问权限详解

题目解读访问权限 rw-r--r--分别代表什么东西 r:代表可读 w:可写 e:可执行 方便起见进行拆分rw- 代表文件所属用户的权限 r-- 代表同组用户的权限 r-- 代表其他用户的权限同时我们可以用2进制来表示: r:4 w:2 e:1 也即是3位二进制数则可以表示 chmod 命令 更改对应的文件的权…

Linux统计日志中有多少个不同的IP登录

题目解析 知识点: 1、awk -F {print $3} 指定空格是分隔符进行分割,取第三个。(不指定默认分隔符也是空格) 2、uniq -c(uniq命令可以去除排序过的文件中的重复行,因此uniq经常和sort合用。也就是说,为了使uniq起作用,所有的重复行必须是相邻的。参数 - c :进行计…

WebAPI项目框架仓储模式+导入SqlSuag

仓储(Respository)是对数据库访问的一个封装 解决方案新建Respository文件夹,新建类库Web.Core.IRepository,Web.Core.Repository 解决方案新建Services文件夹,新建类库Web.Core.IServices,Web.Core.Services 在类库Web.Core.Model下面新建Entity文件夹SqlSugar是国人开发者…

操作系统内存管理学前补充知识

操作系统内存管理学前补充知识 目录操作系统内存管理学前补充知识什么是内存,有什么作用数据的数量单位指令的工作原理3种装入的方式(逻辑地址—>物理地址)绝对装入静态重定位动态重定位从写程序到程序的运行链接的三种方式 什么是内存,有什么作用 手机有内存,电脑中也…

Nginx proxy manager反向代理docker hub

1.域名解析 用作反向代理的域名要提前解析,如果使用外国的DNS域名提供商的话,最好提前一天解析好。 2.配置NPM 2.1.Details选项卡2.2.SSL选项卡2.3.Advanced选项卡 location / {# Docker hub 的官方镜像仓库proxy_pass https://registry-1.docker.io; proxy_set_header Host…

cJSON:构建JSON

使用cJSON库构建比较简单的JSON类型: create_json.c #include <stdio.h> #include <string.h> #include <stdlib.h>#include "cJSON.h"static int create_json_type_1(void) {char *json_str = NULL;cJSON *root = NULL;root = cJSON_CreateObjec…

【esp32 学习笔记】将lvgl融入esp-idf项目中

lvgl科普 lvgl 主要特点:Github库整体了解版本号编排原则屏幕兼容性LVGL 问题处理: lvgl 与 FreeRTOS 由于esp-idf本身带了 FreeRTOS系统,因此需要关注一下操作系统相关的内容:void lvgl_thread(void) {while(1) {uint32_t time_till_next;time_till_next = lv_timer_hand…

QT6 CMake项目配置 (Visual Studio)

QT6 CMake项目配置 (Visual Studio) 上一节已经编译好了动态和静态的QT库,接下来在CMake中引入。 这边主要介绍使用Visual Studio的配置方法 测试环境 首先使用VS创建一个项目来测试CMake能否正常使用。 如果是首次打开VS会有个配置主题的界面,自己选一下就好了 首先我们来创…

ssrf+结合redis 写入crontab或者公钥(两种环境)

REDIS redis作为一种数据库 其实是会真的将数据写入到内存中的 我们利用ssrf请求 请求redis 实现服务器对自己的公钥或任务计划写入 实现无密码登录 或反弹bashredis监听所有地址时 才能被外部访问 否则只能127.0.0.1 本地访问 而且开启保护模式后会导致目标端口只能本地访问 这…

ffmpeg常用命令汇总

最近在学习ffmpeg,将基础命令做一次汇总,便于自己以后查阅: 1. ffmpeg 常用命令 ffmpeg 帮助信息查看 // 查看 ffmpeg 的基础信息。 ffmpeg --help// 查看高级参数部分。 ffmpeg --help long// 查看全部的帮助信息。 ffmpeg --help full转封装 // -hide_banner: 隐去 ffmpeg …

麻烦问一下xpath标签定位的这个索引是做什么用的?

大家好,我是Python进阶者。 一、前言 前几天在Python最强王者交流群【杨又串🍻】问了一个Python网络爬虫的问题,问题如下:老师,麻烦问一下xpath标签定位的这个索引是做什么用的,我听网课把这个知识点跳过了? 二、实现过程 后来【隔壁😼山楂】给了一个指导:这个过去出…

李沐动手学深度学习V2-chap_preliminaries

李沐动手学深度学习V2 文章内容说明 本文主要是自己学习过程中的随手笔记,需要自取 课程参考B站:https://space.bilibili.com/1567748478?spm_id_from=333.788.0.0 课件等信息原视频简介中有CSV文件修改读取成张量tensor 数据预处理 首先(创建一个人工数据集,并存储在CSV(…

C语言打印倒三角形,底边长n作为参数输入,从键盘输入

打印倒三角形,底边长n作为参数输入,从键盘输入。#include <stdio.h> int main(int argc, char const *argv[]) {int i, j, k, l, n;printf("请输入底边长: \n");scanf("%d", &n);while (getchar() != \n);printf("输出图形如下:\n"…

WebAPI项目框架JWT权限验证

JWT是什么?校验逻辑?授权过程?这里就不过多的阐述了,直接上代码 在appsettings.json中配置jwt参数的值 SecretKey必须大于16个字符1 {2 "Logging": {3 "LogLevel": {4 "Default": "Information",5 "Micros…

2.SpringBoot快速上手

2.SpringBoot快速上手 SpringBoot介绍javaEE的开发经常会涉及到3个框架Spring ,SpringMVC,MyBatis.但是这三个框架配置极其繁琐,有大量的xml文件,spring Boot对之前的配置进行极大的简化Spring Boot 是由Pivotal团队提供的基于Spring的全新框架,简化Spring应用的初始搭建和…

RTMP协议

RTMP(Real-Time Messaging Protocol)是一个综合性的协议,不仅可以传输音视频数据,还可以传输信令控制指令。RTMP 使用 TCP 作为传输协议,可以直接在 TCP 连接上传输音视频数据,也可以传输控制指令,实现了音视频流的实时传输和控制。 与RTSP 不同,RTSP(Real-Time S…

yarn install 时显示 node_modules\esbuild: Command failed

可以找一找你的nodejs安装路径是不是中文的,如果是中文的换成英文应该就可以了(记得系统变量里也要改掉)