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

做qq阅读网站介绍seo服务深圳

做qq阅读网站介绍,seo服务深圳,浙江省建设局网站施工图审查,电子商务主要指什么前言 除了 A 题,唯一一道一遍过的题。 题目大意 我们定义满足以下所有条件的一个长度为 N N N 的序列 A ( A 1 , A 2 , … , A N ) A(A_1,A_2,\dots,A_N) A(A1​,A2​,…,AN​) 为波浪序列: N ≥ 4 N\ge4 N≥4(其实满足后面就必须满足这…

前言

除了 A 题,唯一一道一遍过的题。

题目大意

我们定义满足以下所有条件的一个长度为 N N N 的序列 A = ( A 1 , A 2 , … , A N ) A=(A_1,A_2,\dots,A_N) A=(A1,A2,,AN)波浪序列

  • N ≥ 4 N\ge4 N4(其实满足后面就必须满足这个条件)。
  • A 1 ≤ A 2 A_1\le A_2 A1A2(小心不要忘了这个条件)。
  • 有且只有一个峰。
  • 有且只有一个谷。

现在有个长度为 N N N 的序列 P P P,求有多少个连续的子段是波浪序列。

思路

我们看一下条件——有且只有一个峰、一个谷。但是,整个序列里面会有许多峰、许多谷。然后,我们会从中选取一个峰、一个谷和一些其他类别的元素构成波浪序列。显然,我们要记下所有峰、所有谷的位置。默认按从小到大顺序记。

接下来,我们枚举选取子段的右端点,从第一个既包含峰又包含谷的位置开始,一直枚举到 N N N。考虑左端点可能的取值范围。前面通过从小到大的顺序暗示了这里的重要算法——二分。二分什么呢?左端点下边界?上边界?都可以。因为它是上下边界都与峰谷的位置有关,而确定上边界的峰一定“紧挨着”确定下边界的峰(指的是中间不会有别的峰),谷也是同理。式子自己想想吧!不会可以看代码。

代码

请点击 这里 查看 AC 记录。

#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;int n, p[300010];
int c1, v1[300010]; // peak
int c2, v2[300010]; // valley
int s1[300010];
int s2[300010];int main()
{cin >> n;for (int i = 1; i <= n; i++)cin >> p[i];for (int i = 2; i < n; i++){s1[i] = s1[i - 1];if (p[i - 1] < p[i] && p[i] > p[i + 1])v1[++c1] = i, s1[i]++;s2[i] = s2[i - 1];if (p[i - 1] > p[i] && p[i] < p[i + 1])v2[++c2] = i, s2[i]++;}if (!c1 || !c2){cout << "0" << endl;return 0;}long long ans = 0;for (int i = max(v1[1], v2[1]) + 1; i <= n; i++){int p1 = lower_bound(v1 + 1, v1 + c1 + 1, i) - v1 - 1;int p2 = lower_bound(v2 + 1, v2 + c2 + 1, i) - v2 - 1;
//		if (p1 < 0 || p2 < 0) p1 = p2 = 0;
//		cout << i << " " << p1 << " " << p2 << ": " << endl;
//		cout << " - " << v1[p1] << " " << v2[p2] << endl;
//		cout << " - " << v1[p1 - 1] << " " << v2[p2 - 1] << endl;if (v1[p1] > v2[p2]) continue;int vmx = max(v1[p1 - 1], v2[p2 - 1]) - 1;int vmn = min(v1[p1], v2[p2]) - 1;vmx = max(vmx, 0);if (i - vmx < 4) continue;if (i - vmn + 1 < 4) vmn = i - 3;ans += vmn - vmx;
//		cout << i << " " << vmx << " " << vmn << endl;}cout << ans << endl;return 0;
}

总结

时间复杂度 O ( N ⋅ log ⁡ N ) O(N\cdot\log N) O(NlogN),二分很好用。

http://www.dtcms.com/wzjs/29282.html

相关文章:

  • 网站没有备案怎么申请广告重庆seo网站推广优化
  • 进一步推进网站集约化建设留号码的广告网站
  • 网站不备案可以做百度竞价吗上海网站建设推广服务
  • 网站制作方案模板最新国际新闻头条新闻
  • 100款禁用网站郑州百度推广公司
  • 江都网站建设谷歌seo服务
  • 网站空间绑定域名seo标签优化
  • 简述如何对网站进行推广?互联网营销方式
  • 注册公司一年要交多少税重庆seo排名方法
  • 金湖网站设计搜索引擎谷歌
  • 想找工作去哪个网站怎样宣传自己的品牌
  • 网上接网站做石家庄seo公司
  • 做网站费用 优帮云沈阳cms模板建站
  • win7 iis建立网站百度指数免费查询
  • 购物网站建设公司西安seo网站优化
  • 个人工作室网站怎么做宁波seo外包推广软件
  • 哪里有微信网站建设seo的目的是什么
  • 免费做链接的网站怎么创建网站赚钱
  • 做纸巾定制的网站品牌营销网站建设
  • 大型网站响应式网站设计公司有哪些
  • 建立网站成本最低百度上做优化一年多少钱
  • 高端企业网站报价今日国际新闻热点
  • 清远网站关键字优化中国新闻最新消息今天
  • 做网站每年运营要花掉多少钱网络营销活动策划方案模板
  • 深圳网站商城定制设计泉州seo
  • 做公司网站要走哪些流程竞价交易
  • 天津平台网站建设推荐seow是什么意思
  • 网站不备案不能用吗seo助力网站转化率提升
  • 做安卓icon图标包下载网站百度推广渠道商
  • 专业网站建设价格最优西安网站建设公司排名