题意:

在一个序列中找出连续的子序列,满足在这个子序列中从某一个位置开始,左侧是一公差是d1的等差序列,右侧是一个公差是d2的等差序列,问能找到多少个子序列。

思路:

模拟,不多说,贴队友的代码。

代码:

#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;const long long maxn = 100005;
long long a[maxn];long long L[maxn], R[maxn];
int main() {long long n, d1, d2;
//    freopen("a.txt","r",stdin);while(EOF != scanf("%I64d%I64d%I64d",&n, &d1, &d2)) {for(long long i = 1; i <= n; i++) {scanf("%I64d",&a[i]);}memset(L, 0, sizeof(L));memset(R,0, sizeof(R));a[0] = 100000000000;a[++n] = 100000000000;
//        for(long long i = 0; i <= n; i++) {
//            printf("%I64d ", a[i]);
//        }puts("");long long ans = n-1;long long num = 1;long long lx, rx = 1;for(long long i = 2; i <= n; i++){if(a[i] - a[i - 1] == d1) {num++;if(num == 2) {lx = i - 1;}}else {if(num >= 2) {long long x = num - 1;ans += (x * (x + 1) / 2);rx = i - 1;L[rx] = lx;}num = 1;}}if(d1 != d2) {num = 1;lx = 1;rx = 1;for(long long i = 2; i <= n; i++){if(a[i] - a[i - 1] == d2) {num++;if(num == 2) {lx = i - 1;}}else {if(num >= 2) {long long x = num - 1;ans += (x * (x + 1) / 2);rx = i - 1;R[lx] = rx;}num = 1;}}for(long long i = 1; i <= n; i++){if(L[i] != 0 && R[i] != 0) {long long m1 = i - L[i];long long m2 = R[i] - i;ans += m1 * m2;}}}printf("%I64d\n", ans);
//        cout << ans << endl;}return 0;
}

hdu5399(模拟)相关推荐

  1. springboot实现SSE服务端主动向客户端推送数据,java服务端向客户端推送数据,kotlin模拟客户端向服务端推送数据

    SSE服务端推送 服务器向浏览器推送信息,除了 WebSocket,还有一种方法:Server-Sent Events(以下简称 SSE).本文介绍它的用法. 在很多业务场景中,会涉及到服务端向客户端 ...

  2. curl模拟post请求

    另外可尝试 postman工具 或者用request 直接请求 CURL 发送POST请求curl -header "Content-Type: application/json" ...

  3. flask_模拟请求post,get

    #coding:utf-8 import requestsres = requests.post(url="http://192.168.135.105:8888/",data={ ...

  4. 模拟内存计算如何解决边缘人工智能推理的功耗挑战

    模拟内存计算如何解决边缘人工智能推理的功耗挑战 How analog in-memory computing can solve power challenges of edge AI inferen ...

  5. 为放大器模拟输入模块提供可靠的输入过电压保护

    为放大器模拟输入模块提供可靠的输入过电压保护 Signal Chain Basics #159: Provide robust input overvoltage protection for amp ...

  6. 模拟Servlet本质

    JavaWeb系列教程,持续更新 JavaWeb-Servlet 模拟Servlet本质 使用IDEA开发Servlet程序 Servlet对象的生命周期 适配器(GenericServlet)改造S ...

  7. 2021年大数据Flink(四十):​​​​​​​Flink模拟双十一实时大屏统计

    目录 Flink模拟双十一实时大屏统计 需求 数据 编码步骤: 1.env 2.source 3.transformation 4.使用上面聚合的结果,实现业务需求: 5.execute 参考代码 实 ...

  8. Python:模拟登录、点击和执行 JavaScript 语句案例

    案例一:网站模拟登录 # douban.pyfrom selenium import webdriver from selenium.webdriver.common.keys import Keys ...

  9. 杨老师课堂_Java核心技术下之控制台模拟文件管理器案例

    背景需求介绍: 编写一个模拟文件管理器的程序,实现控制台对文件和文件夹的管理操作. 要求在此程序中: 当用户输入指令 1 时,代表"指定关键字检索文件",此时需要用户输入检索的目录 ...

最新文章

  1. 双节棍「大师」鱼佬亲传武功秘籍:如何进行一场数据挖掘算法竞赛?
  2. iOS企业版使用第三方实现自动更新版本
  3. UA MATH564 概率论 多项分布
  4. libevent源码学习-----时间管理
  5. java seconds_Java LocalTime minusSeconds()用法及代码示例
  6. c语言下面程序的功能是求圆的周长和面积.请改正程序中带*行中,2012年计算机等级考试二级C语言上机题(5)...
  7. Memory Notification: Library Cache Object loaded into SGA问题
  8. mysql join子查询_MySQL的多表join中,子查询伤不起啊!
  9. 绝大部分人都错误的把赚钱或者人生都放在依靠外界
  10. 参与就有1000块,30W奖池你占一半 | 帆软开发者大赛招募
  11. 三菱PLC软件有LINUX版本吗,三菱PLC编程软件(GX Developer)
  12. Pytorch向量各个元素的n次方求和
  13. 齐岳|马钱苷酸小麦麦清白蛋白纳米粒|雷公藤红素乳清白蛋白纳米粒Celastrol-whey protein
  14. 全球 Hoster Point DNS 遭受重大 DDoS 攻击
  15. 今天凌晨十二点和明天凌晨十二点的时间戳
  16. DHCP实验过程四个阶段
  17. CPU设计——CPU核解析——cv32e40p
  18. CTFSHOW web入门 命令执行+文件包含+PHP特性
  19. 独木舟上的旅行(船问题贪心)
  20. js时间戳转时间(年-月-日 时:分:秒)

热门文章

  1. 科大星云诗社动态20210329
  2. [C++学习笔记](double*)malloc(n * sizeof(double));
  3. 我的个人网站更新了!
  4. Savitzky-Golay 滤波器详解及C/matlab语言程序设计
  5. Linux下的编程入门
  6. [智力问答] 十个最难的字 你认识几个
  7. 有关 Form 的一些代码的标准写法
  8. 【路由交换实验】VLAN
  9. 【CyberSecurityLearning 30】Linux操作系统的用户和组、文件及目录权限
  10. 零起点学算法95——弓型矩阵