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

新增网站移动端网站如何做导出功能吗

新增网站,移动端网站如何做导出功能吗,广州公司注册费用,济南网站制作方案用二分的思想求最长上升子序列的思想就是保持单调性,用一个q[]数组来作为一个单调数组。 每次将a[i]放进q数组中,但是要保持单调性,q数组的长度就是答案。 q[]数组中存的是所以以下标为长度的最长子序列的结尾的最小值。 理解q[]数组的意义…

用二分的思想求最长上升子序列的思想就是保持单调性,用一个q[]数组来作为一个单调数组。

每次将a[i]放进q数组中,但是要保持单调性,q数组的长度就是答案。

q[]数组中存的是所以以下标为长度的最长子序列的结尾的最小值。

理解q[]数组的意义后那么就可以知道q数组下标从1开始有效。

 

//二分 最大上升子序列
#include<iostream>
using namespace std;
const int N = 1e5 + 9;
int a[N], q[N], n;
//q[]是一个单调数组int main()
{ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);cin >> n;for (int i = 0; i < n; ++i) cin >> a[i];int len = 0;q[0] = -2e9;//赋值为最小值,保证不会对结果有影响for (int i = 0; i < n; ++i){int l = 0, r = len;while (l < r){int mid = l + r + 1 >> 1;if (q[mid] < a[i]) l = mid;//找到一个最大且小于a[i]的数else r = mid - 1;}len = max(len, r + 1);//找到之后r + 1就是最大上升序列q[r + 1] = a[i];//a[i]为q[]下一个数的最小的值,因为后面一个数必定大于等于a[i]//所以需要更新他的值}cout << len;return 0;
}

根据上述代码举例,比如找到a[i]找的q[4]就是小于a[i]的最大的数,用因为q[]数组是单调的所以q[5]的值大于等于a[i],这时就可以更新q[5]了,因为q[5]比原先的值小,那么最长子序列的潜力就更大了。

至于二分寻找最大小于a[i]的位置。r先初始化为len的原因就显而易见了,因为就是在q[]数组中寻找嘛!r是找到的位置,r + 1就是应该的最长子序列长度。例如:q[4]为找到的最大小于a[i]的位置,q[r + 1]会被更新成a[i]所以求len时要用r + 1.

http://www.yayakq.cn/news/576273/

相关文章:

  • app打包网站开发源码百度热议排名软件
  • 模板网站会影响网站优化吗wordpress搭建相册
  • 国外网站模版网站开发建设是否需要经营许可
  • 类似一起做网站的网站wordpress阿里秀模板
  • 微信公众平台开发微网站网络规划与设计第二版
  • 商城型外贸网站建设免费 网站点击
  • 国际 网站制作公司站长工具seo下载
  • 清远做网站哪家好本地网站搭建视频教程
  • 西宁专业网站建设wordpress edu2.0
  • 网站制作三站网页制作基础教程我的足球网
  • 新开的网站建设公司如何推广企业网站建设条件
  • 东莞做展示网站的公司做网站推广要注意的事项
  • 手机上有趣的网站wordpress form 美化
  • 做异性的视频网站有哪些网站开发页面设计过程
  • 网站alexa排名查询网站建设定制设计
  • 政务移动门户网站建设云建设平台
  • 临海最火自适应网站建设网站建设速度如何解决
  • wordpress删除导入xml百度关键词优化专家
  • 常见电子商务网站基本模式免费浏览网站推广
  • 电脑店免费建站丰台网站开发联系电话
  • 站长seo推广网站建设计划方案模板
  • 网站建设站做企业的网站都要准备什么手续
  • 个人网站名字取名怎么做温州捷创网站建设
  • 网站建站之后需要维护吗舟山市建设工程质量监督站网站
  • 看手机的网站叫什么购物网站建设策划书
  • 江苏商城网站建设服务外贸电子商务网站建设
  • cms网站怎么做网站建设视频教程php
  • 开发龙岗网站建设手机免制作app软件下载
  • 主题网站设计网店推广
  • 西安网站建设sd2w网站建设 合优企业