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

成都私人做网站建设单机版网页制作软件

成都私人做网站建设,单机版网页制作软件,凡科快图app,免费获取源码的网站题目描述 思路分析 本题有两问,第一问直接用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/520331/

相关文章:

  • 合肥哪个公司做网站好app开发框架
  • 电子商务实验网站建设实训过程网站建设需要什么内容
  • 手机建设网站公司网站添加新闻栏怎么做
  • 天津住房和城乡建设部网站国外做测评的网站有哪些
  • 制作企业网站得多长时间网站建设最好
  • 电子商务网站建设维护有没有欺骗抓取网站后台
  • 网站的内链建设展厅设计理念和设计构思
  • 湖北省建设银行网站6智慧景区网站建设
  • 冠县网站建设电话网络规划设计师教程第二版电子书
  • 网易那个自己做游戏的网站是什么江苏启安建设集团有限公司网站
  • wordpress 采集功能宁波seo关键词优化案例
  • 如何在网站后台做网页济宁优化推广
  • led 网站模板哪些人不适合学平面设计
  • 常德做网站建设的公司做网站图片切图可以用中文吗
  • 潍坊哪里做网站网站建设推广是什么
  • 两学一做 网站南宁建站公司
  • 新媒体运营哪个培训机构好搜外seo
  • 广州天河网站开发公司关于网站建设 策划文案
  • 房地产微网站中国企业500强标准
  • 网站注建设银行etc信用卡申请网站
  • 中投建设集团有限公司 网站会计专业简历制作
  • 搜房网网站跳出率工作空窗期怎么缴纳社保
  • 做网站的图片大小是多少网站设计的经营范围
  • 可口可乐网站建设大连网站建设报价
  • 农业推广网站建设WordPress文章白色标签
  • 网站推广营销步骤济南网签查询
  • 网站目录文件查看wordpress时间轴插件
  • 怎么才能搜索到自己做的网站广药网站建设试卷
  • 通信科技网站设计房产资讯的网站怎么做
  • 建做网站网店装修图