hdu 5009 Paint Pearls

uni-app一键登录实战:从云函数配置到前端调用的完整指南 本文详细介绍了uni-app中一键登录功能的实现方法,从DCloud控制台配置到云函数开发,再到前端调用全流程。通过一键登录,用户无需输入账号密码即可快速使用本机手机号登录,显著提升用户体验和登录转化率。文章还提供了常见问题排查和安全合规要点,帮助开发者高效完成集成。 阅读详情

        题意:有一个序列,你需要给它上颜色。每次只能上一段连续的区间,费用是这个区间里颜色数的平方,问全部上色完成的最小花费是多少。

        思路:dp。首先是缩点,把相邻同色的合并起来,然后把颜色值离散化。完了就可以dp了。dp(i)是从头上色到i时的最小花费。dp(i)可以从dp(0)~dp(i-1)转移过来,还有就是需要极致地优化。。如果这一段的花费比到最后还高,就可以跳出了。


#include<iostream>
#include<cmath>
#include<queue>
#include<map>
#include<vector>
#include<algorithm>
#include<string.h>
#include<cstdio>

using namespace std;

struct node{
    int val;
    int idx;
    int rnk;
};
node a[50010];
bool vis[50010];
int dp[50010];
int vec[50010];     //数组优化,避免每次清空全部vis数组

bool cmp1(node n1,node n2){
    return n1.val<n2.val;
}

bool cmp2(node n1,node n2){
    return n1.idx<n2.idx;
}

int main(){
    int n;
    a[0].val=-1;
    while(~scanf("%d",&n)){
        int m=0;
        for(int i=1;i<=n;i++){
            int t;
            scanf("%d",&t);
            if(a[m].val!=t)m++;
            a[m].idx=m;
            a[m].val=t;
        }

        sort(a+1,a+m+1,cmp1);
        int k=0;
        for(int i=1;i<=m;i++){
            if(a[i].val!=a[i-1].val)k++;
            a[i].rnk=k;
        }
        sort(a+1,a+m+1,cmp2);
        for(int i=0;i<=m;i++)dp[i]=i;

        for(int i=0;i<m;i++){
            int cnt=0;
            int siz=0;
            for(int j=i+1;j<=m;j++){
                if(!vis[a[j].rnk]){
                    vec[siz++]=a[j].rnk;
                    vis[a[j].rnk]=1;
                    cnt++;
                }
                if(dp[i]+cnt*cnt>=dp[m])break;  //不可能取得最优解及时跳出
                dp[j]=min(dp[j],dp[i]+cnt*cnt);
            }
            for(int j=0;j<siz;j++){
                vis[vec[j]]=0;
            }
        }
        printf("%d\n",dp[m]);
    }
    return 0;
}


手把手教你用差分放大电路搭建LC振荡器(实测频率误差分析) 本文通过一个差分放大电路搭建LC振荡器的实践案例,深入分析了实测频率与理论值产生显著误差的原因。核心在于共模电感的互感效应改变了谐振回路的等效电感,导致频率偏差。文章提供了从电路搭建、误差根源剖析到波形优化与稳定性提升的完整解决方案,帮助电子爱好者深入理解模拟电路的实际行为。 阅读详情

相关推荐

b站视频链接快速获取

快速获取b站视频数据

qq_45889931的博客 7727

【HDU】5009 Paint Pearls DP

传送门:【HDU】5009 Paint Pearls

poursoul 1580

迈德威视相机调用( 基于 Linux系统+ OpenCV )

迈德威视相机调用( 基于 Linux系统+ OpenCV )前言一、登录迈德威视官网,下载官方SDK二、代码调用与视频帧处理( 基于 OpenCV )总结 前言     此博客记录了迈德威视工业相机在 Linux 系统下的代码调用及其环境配置,通过 OpenCV 对视频帧进行处理。   一、登录迈德威视官网,下载官方SDK      迈德威视官网 : http://www.mindvision.com.cn/     1. 进入官网后,在服务支持中选择软件下载。    2. 选择Linux系统S.

kkkkkk0729的博客 5678

hdu5009 Paint Pearls

DP+乱搞

ACoder 355

对极几何 —两相机相对位置关系与相机姿态估计方法(基础矩阵,本征矩阵,单应矩阵梳理)附c++源码

对极几何 —两相机相对位置关系与相机姿态估计方法(基础矩阵,本质矩阵,单应矩阵梳理)附c++源码对极几何是什么,它有什么用(整体流程理解)对极约束(描述两相机关系)基础矩阵特性与求解方法本质矩阵特性与求解方法相机姿态恢复方法怎么又冒出了个单应矩阵H? 对极几何是什么,它有什么用(整体流程理解) 如图,当空间上有一个点分别在相机1和相机2上进行成像,这两个点存在什么变换关系呢?再扩展一下,真实世界下的场景分别用两个相机进行拍摄,获得两张照片,两张照片有什么变换关系呢?那么对极几何就是用来描述这种变换关系的。

qq_37764141的博客 5103

关于VS2019调试问题:进程已退出,代码为-1073741819(已解决)

关于VS2019调试问题:进程已退出,代码为-1073741819(已解决) 详情:上一篇发了这个进程问题,在我翻阅了《c语言程序设计第四版》和《算法与数据结构》两本书对照代码加上调试终于找到了解决方法 解决方法: 首先找到项目的源文件右击找到属性 然后选择从生成中排除选择是! 重新生成解决方案,发现代码问题: 之前的代码: #include <stdio.h> #include <stdlib.h> #include <malloc.h> #include &lt

qq_51553982的博客 1万+

HDU-5009 Paint Pearls

原题链接: https://vjudge.net/problem/HDU-5009 AC代码: #include <algorithm> #include <bits/stdc++.h> #include <cmath> #include <cstdio> #include <cstring> #include <iostream> #include <list> #include <map> #includ

sjyisdog的博客 231

基于UC3842的反激电源的全面深入解析与MATLAB仿真

内置电流检测,可实现电流模式控制,提高系统的动态响应性。多种保护功能,如欠压锁定、过温保护、短路保护等,确保系统的安全可靠运行。宽工作电压范围,适应不同的电源设计需求。简单的外部元件配置,易于实现。UC3842的典型应用包括开关电源、DC-DC转换器和反激式电源等,其稳定性和可靠性在实际应用中得到了广泛验证。

qq_38334677的博客 1086

hdu 5009 Paint Pearls(dp)

题目链接:hdu 5009 Paint Pearls 题目大意:给定一串珠子的目标颜色,现在要为这些珠子上色,每次可以选中一段区间上的珠子上色,代价为这段区间中颜色的数量k的平方,要求用最少的代价。 解题思路:dp[i]表示到i的最优代价,加上优化即可,当k(颜色总数)的平方大于N的可以直接跳出循环,当dp[i] > dp[i+1]时,可以考虑直接从dp[i+1]转移。 现场的时候交

不慌不忙、不急不躁 891

闲鱼爬虫实战:模拟手机端破解反爬策略,爬取指定商品搜索数据,爬取闲鱼搜索指定商品(需手机端模拟)o 技术点:抓包分析、cookie与token

技术点作用抓取手机 App 请求,分析 API 结构、Header、参数加密情况requestsPython 中最常用的 HTTP 库,用于发送模拟请求Session 对象自动管理 Cookie,保持会话User-Agent & 设备特征模拟手机型号、系统版本,绕过服务端检测闲鱼部分接口存在签名,需要逆向或复用有效 Token多线程/异步提高爬取效率(需节制,避免封 IP)解析 HTML 或 JSON 数据注意:闲鱼的接口加密程度中等偏上,部分接口存在动态签名(如x-signx-mini-wua。

2201_76125261的博客 712

❤️爆肝十二万字《python从零到精通教程》,从零教你变大佬❤️(建议收藏)

文章目录强烈推荐系列教程,建议学起来!!一.pycharm下载安装二.python下载安装三.pycharm上配置python四.配置镜像源让你下载嗖嗖的快4.1pycharm内部配置4.2手动添加镜像源4.3永久配置镜像源五.插件安装(比如汉化?)5.1自动补码神器第一款5.2汉化pycharm5.3其它插件六.美女背景七.自定义脚本开头八、这个前言一定要看九、python入门十、python缩进十一、Python注释1.单行注释2.多行注释十二、Python 变量1.变量定义理解2. 变量名命名3. 分

全栈川川 26万+

HDU 5009 Paint Pearls(西安网络赛C题)

HDU 5009 Paint Pearls 题目链接 题意:给定一个目标颜色,每次能选一个区间染色,染色的代价为这个区间不同颜色数的平方,问最小代价 思路:先预处理,把相同颜色的一段合并成一个点,然后把颜色离散化掉,然后进行dp,dp[i]表示染到第i个位置的代价,然后往后转移,转移的过程记录下不同个数,这样就可以转移了,注意加个剪枝,就是如果答案大于了dp[n]就不用往后继续转

Remilia's 3551

寻路最终版哦

相信大家用unity3d寻路的时候,一定会碰到多人

yxriyin的专栏 6954

DP - hdu5009 Paint Pearls

题目: http://acm.hdu.edu.cn/showproblem.php?pid=5009 题意: 有一串珠子需要染色,允许每次染一段区间,代价为这段区间的颜色总数color^2,求最小代价 思路: 感觉就是DP,然而就是搞不出怎么DP给跪了 先提出一个基础的DP思路 dp[i] = min{dp[j]+num[j+1,i]^2},dp[i]代表[1,i]

Keith_windniw的专栏 416

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

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

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Paint Pearls HDU - 5009

http://acm.hdu.edu.cn/showproblem.php?pid=5009 借鉴题解: 双向链表优化dp。dp[i]表示涂完前i个所化的最小代价,显然有dp[i]=min{dp[j]+num(j+1,i)^2},其中1&lt;=j&lt;i,num(j+1,i)表示区间[j+1,i]的颜色个数。 这样复杂度为O(n^2)显然超时。那么需要优化一下,比如第二组测试数据3 4 2...

sunyutian1998的博客 238

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

hdu5009Paint Pearls dp

#include #include #include #include #include using namespace std ; const int maxn = 5e4+10 ; const int inf = 1e9 ; int dp[maxn] ; int a[maxn] ; map ma; int pre[maxn] ; int last[maxn] ; int main() {

ijbuhv的专栏 631

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Paint Pearls(HDU 5009)

Paint Pearls Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 2221    Accepted Submission(s): 719 Problem Description Lee has a stri

剑洋侠客 896

HDU 5009 Paint Pearls

Paint Pearls Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 2804    Accepted Submission(s): 890 Problem Description Lee has a stri

蘑菇--走在通往梦想的道路上。 391

Hdu 5009 Paint Pearls(dp)

题目链接 Paint Pearls Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1250    Accepted Submission(s): 398 Problem Description Lee has a

madaidao的专栏 587

HDU 5009 Paint Pearls DP 双向链表

http://acm.hdu.edu.cn/showproblem.php?pid=5009 题意:对一段字符串操作,一次操作可以操作一段连续的区间,开销为这段区间颜色种类数的平方。求使字符串每一个元素都被操作过至少一次的最小开销。 题解:DP的转移过程挺好想,就是(num(j,i)表示区间[i,j]的颜色种类数)但是朴素的写会超时。 算一下样例二会发现中间一大段只有3,2,4三种颜色,这一...

编程路漫漫 192

HDU - 5009 Paint Pearls dp + 链表 + 下界优化

传送门:HDU 5009 题意:给出n个连续的珠子,珠子有不同的颜色,现将其划分成任意多段,每一段的代价为该段中颜色种数的平方,问划分的最小总代价和是多少。 总思路:dp[i]代表处理到第i个珠子的最小花费,显然dp[i] = min(dp[j] + num[i][j] * num[i][j])(0 优化方法1:用双向链表维护珠子的颜色,使得任意时刻已经遍历过的珠子中每种颜色都只保存一个最

WA是一笔财富 303

【HDU - 5009】Paint Pearls(dp,链表优化dp)

题干: Lee has a string of n pearls. In the beginning, all the pearls have no color. He plans to color the pearls to make it more fascinating. He drew his ideal pattern of the string on a paper and asks...

xuanweiace的博客 495

UVa 1629 - Cake slicing

题意:n*m大小的蛋糕,被分成n*m个区域,其中k个区域上面有樱桃。你需要把蛋糕切成k份,每份都有樱桃,切的时候只能水平或竖直沿着网格线切,切到底。问最短切的长度是多少。 思路:DP。DP[u][d][l][r]。u,d,l,r表示整块蛋糕的上下左右。

A Cube Master 1948
上一篇: hdu 4800 Josephina and RPG
下一篇: Codeforces Round #278 (Div. 1) A
squee_spoon
博客等级 码龄14年 61粉丝 455原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值