当前位置: 首页 > news >正文

企业网站建设方案大全莱芜论坛的最新帖子

企业网站建设方案大全,莱芜论坛的最新帖子,建网站需要哪些知识,百度推广合作题目描述 思路分析 本题有两问,第一问直接用lis的模板即可,下面重点看第二问 思路是贪心: 贪心流程: 从前往后扫描每一个数,对于每个数: 情况一:如果现有的子序列的结尾都小于当前的数&…

题目描述

 思路分析

本题有两问,第一问直接用lis的模板即可,下面重点看第二问

思路是贪心:

贪心流程:

从前往后扫描每一个数,对于每个数:

情况一:如果现有的子序列的结尾都小于当前的数,则创建子序列

情况二:将当前的数放到结尾大于等于它的最小的子序列后面

举个例子:

360 322 555 222.....

从左到右遍历上面序列,当遍历到222的时候,此时已经存在了两个子序列“360 322”和“555”,两个子序列的结尾分别是322和555,其中322是大于等于222且是“322和555”中最小的数,所以把222放在序列“360 322”的后边!

贪心证明:

A表示贪心算法得到的序列个数,B表示最优解

B<=A   显然

如何证明B>=A?利用调整法:

如上图所示,假设a的后面是利用贪心算法插入的一个数,b的后面是最优解插入的一个数

在这两个序列后面补齐之后:

因为a是最优解的插法,所以b>=a

可以把x及后面的序列做交换,导致最优解变成了贪心解,并且总序列个数不变,所以B>=A

完整代码:

#include<iostream>
#include<string>
#include<sstream>
using namespace std;
const int N=1010;
int f[N],h[N],q[N];
int cnt,res;
int n;
int main()
{string str;getline(cin,str);stringstream ssin(str);while(ssin>>q[n])n++;for(int i=0;i<n;i++){f[i]=1;for(int j=0;j<i;j++)if(q[j]>=q[i])f[i]=max(f[j]+1,f[i]);res=max(res,f[i]);int k=0;while(k<cnt&&h[k]<q[i])k++;if(k<cnt)h[k]=q[i];elseh[cnt++]=q[i];}cout<<res<<endl<<cnt<<endl;return 0;
}

http://www.laogonggong.com/news/83765.html

相关文章:

  • 北京网站设计公司hlh成都柚米科技15视频拍摄及制作培训
  • 做电商哪个平台比较好沈阳做网站优化
  • 建立网站的基本过程网站建设yu
  • 万象城网站建设淘宝建设网站的意义
  • 网站建设教程推荐湖南网站seo营销多少费用
  • 已认证网站服务费怎么做微信登录 网站开发
  • 网站三网合一什么意思摄影设计方案
  • vs怎么建手机网站百度在成都有分公司吗
  • 做h5游戏的网站天津做网站网页的公司
  • 网站建设最新资讯wordpress 数据库sql
  • 网站特效怎么做自适应天元建设集团有限公司重要事件
  • 河南股票配资网站建设久久建筑有限公司
  • 百度网站官网入口安徽省建设工程造价信息网站
  • 上海黄浦 网站制作002822中装建设股吧
  • 给个免费网站好人有好报惠阳网站制作公司
  • 大型门户网站建设需要哪些技术泰安集团网站建设费用
  • 盐城网站开发代理咨询创客贴官网
  • 怎么做阿里巴巴国际网站首页导购类网站模板
  • 建设网站需要做的工作html代码编写
  • 网站建设相关新闻聊城制作手机网站公司
  • dw做网站怎么让文字移动制作网页和网站的区别
  • 获取网站访客qq代码手机上做app的软件
  • 天天向上 网站建设2017手机网站建设方案
  • 网站域名怎么设置郴州市建设局网站
  • 做环卫设备都有哪些网站论坛网站制作费用
  • 射阳网站建设郴州seo网络优化
  • 上海网站开发工程师招聘网企业做增资 网站平台
  • 广州做网站多少钱怎样进网站ftp
  • 找企业网站制作建设银行的积分网站
  • 家具行业做那个国际网站比较好win7 iis建立网站