今天西安网赛的题,因为被那个博弈卡住,没什么心情看这个

这个题好像很简单的样子,但是看了下数据量,发现用n^2承受不起,然后我想了一下 没想出什么更低复杂度的算法出来。。

后来发现别人还是用n方算法过的,只是用了下剪枝。。。。擦,我不是很敢尝试这种,,估计今天这个简单DP过的人不是很多 就是卡在时间上的

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
using namespace std;
const int N = 5*10010;
int A[N],n;
int t[N],ranks[N];
int dp[N];
int vis[N];
vector<int> v;
int main()
{while (scanf("%d",&n)!=EOF){for (int i=1;i<=n;i++){scanf("%d",&A[i]);t[i]=A[i];dp[i]=1<<30;vis[i]=0;}sort(t+1,t+1+n);int m=1,k=1;ranks[0]=0;for (int i=2;i<=n;i++){if (t[i]!=t[i-1]){t[++m]=t[i];}if (A[i]!=A[i-1]){A[++k]=A[i];ranks[k-1]=i-k+1;}}ranks[k]=n-k+1;for (int i=1;i<=k;i++){int pos=lower_bound(t+1,t+1+m,A[i])-t;A[i]=pos;}dp[0]=0;dp[k]=k;for (int i=0;i<k;i++){int cnt=0;if (dp[i]>=dp[i+1]) continue;for (int j=i+1;j<=k;j++){if (!vis[A[j]]){cnt++;v.push_back(A[j]);}vis[A[j]]++;if (dp[i]+cnt*cnt>=dp[k]) break;dp[j]=min(dp[j],dp[i]+cnt*cnt);}for (int j=0;j<v.size();j++){vis[v[j]]=0;}v.clear();}printf("%d\n",dp[k]);}
}

  

转载于:https://www.cnblogs.com/kkrisen/p/3971748.html

HDU 5009 Paint Pearls相关推荐

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

    传送门:HDU 5009 题意:给出n个连续的珠子,珠子有不同的颜色,现将其划分成任意多段,每一段的代价为该段中颜色种数的平方,问划分的最小总代价和是多少. 总思路:dp[i]代表处理到第i个珠子的最 ...

  2. AC日记——Paint Pearls hdu 5009

    Paint Pearls 思路: 离散化+dp+剪枝: dp是个n方的做法: 重要就在剪枝: 如果一个长度为n的区间,有大于根号n种颜色,还不如一个一个涂: 来,上代码: #include <c ...

  3. 【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 ...

  4. hdu 4391 Paint The Wall 线段树 +优化 2012 Multi-University Training Contest 10 )

    http://acm.hdu.edu.cn/showproblem.php?pid=4391 题意: 刷墙, 以开始 有 n个节点,每个节点有一种颜色 ,m 次询问 m次  输入 a,l,r,z 如果 ...

  5. HDU 4391 Paint The Wall 段树(水

    意甲冠军: 特定n多头排列.m操作 以下是各点的颜色 以下m一种操纵: 1 l r col 染色 2 l r col 问间隔col色点 == 通的操作+区间内最大最小颜色数的优化,感觉非常不科学... ...

  6. c语言dp状态转移方程,[总结-动态规划]经典DP状态设定和转移方程

    马上区域赛,发现DP太弱,赶紧复习补上. #普通DP CodeForces-546D Soldier and Number Game 筛法+动态规划 待补 UVALive-8078 Bracket S ...

  7. 2014 ACM/ICPC Asia Regional Xi'an Online

    2014西安网络赛 A. Post Robot 把每种单词都kmp跑一遍,顺序输出即可 #include <cstdio> #include <iostream> #inclu ...

  8. 杭电OJ分类题目(2)

    原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(2) HDU Water~~~ HDU 100 ...

  9. ACM——博弈论 (以SG的求法为主)

    HDU 1847Good Luck in CET-4 Everybody! n个石子取2的次幂个,0为terminal position P/N分析和求SG值方法都可以,找规律的话模3余0也能过 主要 ...

  10. 博弈论——公平组合游戏与SG函数

    参考自算法竞赛进阶指南 公平组合游戏与有向无环图 一个博弈游戏被称为公平组合游戏(ICG)当且仅当其同时满足3个条件 由两名玩家交替行动 游戏任意时刻可进行的操作与轮到哪名玩家无关 不能进行操作的玩家 ...

最新文章

  1. 计算机软件打开为什么跑一边,为什么打开Excel后开始菜单就跑掉了?
  2. 2020年人工神经网络第二次作业-参考答案第七题
  3. CSS布局--head区的其他设置
  4. 最简方式 表格编辑 基于 el-table
  5. Spring 经典面试题汇总.pdf(2020版)
  6. mybatisplus多表关联查询_Excel、MySQL、PowerBI、Python来告诉你 数据关联与联合不一样
  7. PyTorch——nn.Conv2d和其中的padding策略,Caffe、Tensorflow的padding策略
  8. 图像处理和计算机视觉中的经典论文(转)
  9. Web安全实践(12)密码探测
  10. linux查看进程加载的jar包,[Linux] 查看jar包内容
  11. 清华大学范玉顺互联网与大数据_互联网+时代的互联网思维与大数据思维
  12. 计算机flash听课记录范文,听课记录范文.doc
  13. 错误的robots文件设置对SEO的影响
  14. xmind zen 同步问题解决 坚果云
  15. Matlab求解矩阵方程
  16. linux 流量整形 软件,流量整形 – Tc:入口策略和ifb镜像
  17. 随机生成数猜大小(java实现)
  18. 2K和XP的CMD命令教程(命令篇)
  19. 漏洞系列之——SQL注入
  20. 2022年登高架设考试模拟100题及在线模拟考试

热门文章

  1. Python 从入门到进阶
  2. 送书!60 本签名书!
  3. STM32 HAL SPI读取MPU6500的设备ID异常
  4. Nginx详解(正向代理、反向代理、负载均衡原理)
  5. Git钩子:自定义你的工作流
  6. Delphi / Pascal 语法知识干货
  7. 手机页面内容超出屏幕宽度时实现可拖拉滑动效果
  8. acdream 1735 输油管道 贪心
  9. 二分--1043 - Triangle Partitioning
  10. 关于C#窗体程序dataGridView控件的用法