博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一道简单的dp题 --- Greenhouse Effect CodeForces - 269B
阅读量:5351 次
发布时间:2019-06-15

本文共 781 字,大约阅读时间需要 2 分钟。

题目链接:

题目大意:

要求从1到m升序排列,点可以随意移动,问最少需要移动多少次,

思路:

动态规划

可以推出转移方程为:dp[i] = max(dp[i], dp[j]) && mp[i] >= mp[j]  dp[i]++;

其中,dp[i]为i位置的序数mi前能保留(也就是不移动)的最大种类数。

dp[i]++是因为自己也不能移动自己,得加一。

下面是AC代码:

#include 
#include
#include
using namespace std;const int MX = 5000+10;int mp[MX], dp[MX];int main(){ int n, m; scanf("%d%d", &n, &m); for(int i = 1; i <= n; ++i) //初始化mp数组 { double x; scanf("%d%lf", &mp[i], &x); } mp[++n] = m+1; for(int i = 1; i <= n; ++i) { for(int j = 1; j < i; ++j) { if(mp[i] >= mp[j]) dp[i] = max(dp[j], dp[i]); } dp[i]++; } printf("%d\n", n-dp[n]);}
View Code

如有疑问,欢迎评论指出!

转载于:https://www.cnblogs.com/mpeter/p/10362060.html

你可能感兴趣的文章
【递归】hex2dec
查看>>
复习一下js的prototype 属性
查看>>
爬虫-爬虫防屏蔽手段之代理服务器
查看>>
错误与异常
查看>>
MySql 之 FIND_IN_SET 和IN
查看>>
Http 数据操作
查看>>
java的安装环境配置详细步骤
查看>>
关于ibatis中mysql的@变量问题作用域、污染问题
查看>>
(转)本地ShareObject
查看>>
IO综合练习--文件切割和文件合并
查看>>
图说C++对象模型:对象内存布局详解
查看>>
asp.net学习之DataList控件
查看>>
.Net之路(十)控件篇
查看>>
Android学习笔记(一)——Activity简介 和 View
查看>>
PHP基础知识小测验
查看>>
免费资源下载:两套超棒的UI界面设计素材集
查看>>
仿IOS日期选择
查看>>
cnblogs第一天
查看>>
java线程的一些基础小知识
查看>>
NAT444技术简介
查看>>