hdu5399(模拟)
题意:
在一个序列中找出连续的子序列,满足在这个子序列中从某一个位置开始,左侧是一公差是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(模拟)相关推荐
- springboot实现SSE服务端主动向客户端推送数据,java服务端向客户端推送数据,kotlin模拟客户端向服务端推送数据
SSE服务端推送 服务器向浏览器推送信息,除了 WebSocket,还有一种方法:Server-Sent Events(以下简称 SSE).本文介绍它的用法. 在很多业务场景中,会涉及到服务端向客户端 ...
- curl模拟post请求
另外可尝试 postman工具 或者用request 直接请求 CURL 发送POST请求curl -header "Content-Type: application/json" ...
- flask_模拟请求post,get
#coding:utf-8 import requestsres = requests.post(url="http://192.168.135.105:8888/",data={ ...
- 模拟内存计算如何解决边缘人工智能推理的功耗挑战
模拟内存计算如何解决边缘人工智能推理的功耗挑战 How analog in-memory computing can solve power challenges of edge AI inferen ...
- 为放大器模拟输入模块提供可靠的输入过电压保护
为放大器模拟输入模块提供可靠的输入过电压保护 Signal Chain Basics #159: Provide robust input overvoltage protection for amp ...
- 模拟Servlet本质
JavaWeb系列教程,持续更新 JavaWeb-Servlet 模拟Servlet本质 使用IDEA开发Servlet程序 Servlet对象的生命周期 适配器(GenericServlet)改造S ...
- 2021年大数据Flink(四十):Flink模拟双十一实时大屏统计
目录 Flink模拟双十一实时大屏统计 需求 数据 编码步骤: 1.env 2.source 3.transformation 4.使用上面聚合的结果,实现业务需求: 5.execute 参考代码 实 ...
- Python:模拟登录、点击和执行 JavaScript 语句案例
案例一:网站模拟登录 # douban.pyfrom selenium import webdriver from selenium.webdriver.common.keys import Keys ...
- 杨老师课堂_Java核心技术下之控制台模拟文件管理器案例
背景需求介绍: 编写一个模拟文件管理器的程序,实现控制台对文件和文件夹的管理操作. 要求在此程序中: 当用户输入指令 1 时,代表"指定关键字检索文件",此时需要用户输入检索的目录 ...
最新文章
- 双节棍「大师」鱼佬亲传武功秘籍:如何进行一场数据挖掘算法竞赛?
- iOS企业版使用第三方实现自动更新版本
- UA MATH564 概率论 多项分布
- libevent源码学习-----时间管理
- java seconds_Java LocalTime minusSeconds()用法及代码示例
- c语言下面程序的功能是求圆的周长和面积.请改正程序中带*行中,2012年计算机等级考试二级C语言上机题(5)...
- Memory Notification: Library Cache Object loaded into SGA问题
- mysql join子查询_MySQL的多表join中,子查询伤不起啊!
- 绝大部分人都错误的把赚钱或者人生都放在依靠外界
- 参与就有1000块,30W奖池你占一半 | 帆软开发者大赛招募
- 三菱PLC软件有LINUX版本吗,三菱PLC编程软件(GX Developer)
- Pytorch向量各个元素的n次方求和
- 齐岳|马钱苷酸小麦麦清白蛋白纳米粒|雷公藤红素乳清白蛋白纳米粒Celastrol-whey protein
- 全球 Hoster Point DNS 遭受重大 DDoS 攻击
- 今天凌晨十二点和明天凌晨十二点的时间戳
- DHCP实验过程四个阶段
- CPU设计——CPU核解析——cv32e40p
- CTFSHOW web入门 命令执行+文件包含+PHP特性
- 独木舟上的旅行(船问题贪心)
- js时间戳转时间(年-月-日 时:分:秒)
热门文章
- 科大星云诗社动态20210329
- [C++学习笔记](double*)malloc(n * sizeof(double));
- 我的个人网站更新了!
- Savitzky-Golay 滤波器详解及C/matlab语言程序设计
- Linux下的编程入门
- [智力问答] 十个最难的字 你认识几个
- 有关 Form 的一些代码的标准写法
- 【路由交换实验】VLAN
- 【CyberSecurityLearning 30】Linux操作系统的用户和组、文件及目录权限
- 零起点学算法95——弓型矩阵