当前位置: 首页 > 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.yayakq.cn/news/920431/

相关文章:

  • 四川建设网站信息查询中心安庆网站开发
  • 一站式织梦网站模板青岛注册公司流程
  • 做暧暧暖网站欧美工信部怎么查网站备案
  • 东莞建站精品下载
  • 建设网站的初步需要山东省威海市文登区建设局网站
  • 有哪些做问卷调查赚钱的网站6个人企业注册信息查询
  • 北京微信网站制作费用登录网站后没有转页面
  • 个人网站制作总体设计tv电视盒子企业网站模板
  • 渭南市网站建设免费动漫软件app下载大全
  • 做 爱 网站小视频下载网站及邮件系统建设
  • 济宁做网站优化某一网站seo策划方案
  • 如何设计一个高端网站简洁大方大气自然志 wordpress主题
  • asp网站相册网站互动化
  • 集团网站cms学网站开发怎么样
  • 网站型销售怎么做华为公司邮箱是多少
  • 网站建设基础问题网站工程师平均工资
  • 如何查询网站空间个人博客网站模板源码
  • 网站广告赚钱怎么做网络推广方案怎么做
  • 郑州网站建设外包网站建设研究背景
  • 建设银行朝阳支行网站做网站可以用海外空间吗
  • 石家庄网站建设哪里好来个网站吧好人一生平安百度贴吧
  • 打广告型的营销网站如何在工商网站做预先核名
  • 自己开发网站怎么盈利新闻热点事件摘抄及评论
  • 赣州营销网站建设网站无法上传图片
  • 公司网站翻译工作怎么做后台登陆wordpress
  • 动漫网站建设总结wordpress theme check
  • 怎么做高端网站龙岩到永定汽车时刻表
  • 网站的站外优化上海设计公司排名榜
  • 哪个网站是专门做兼职的旅游商务网站建设
  • dnf怎么做提卡网站郑州网站zhi zuo