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

打卡信奥刷题(2942)用C++实现信奥题 P5847 [IOI 2005] mea

P5847 [IOI 2005] mea

题目描述

考虑一个非递减的整数序列S1,⋯ ,Sn+1S_1,\cdots,S_{n+1}S1,,Sn+1(Si≤Si+1S_i \le S_{i+1}SiSi+11≤i≤n1 \le i \le n1in)。序列M1⋯MnM_1 \cdots M_nM1Mn是定义在序列SSS的基础上,关系式为Mi=Si+Si+12M_i = \frac{S_i + S_{i+1}}{2}Mi=2Si+Si+11≤i≤n1 \le i \le n1in),序列MMM叫做序列SSS的平均数序列。

例如序列1,2,2,41,2,2,41,2,2,4的平均数序列为1.5,2,31.5,2,31.5,2,3. 注意到平均数序列中的元素可能为小数。但是本题的任务只是处理平均数序列都为整数的情况。

给出一个nnn个数字的非递减的整数序列M1,M2,⋯ ,MnM_1,M_2,\cdots,M_nM1,M2,,Mn。请你计算出:序列S1,⋯ ,Sn+1S_1,\cdots,S_{n+1}S1,,Sn+1的平均序列是M1,⋯ ,MnM_1,\cdots,M_nM1,,Mn。 求满足以上条件的序列SSS的总个数。

任务:从标准输入文件中读入一个非递减的整数序列。计算出平均序列是给出序列的整数序列的总个数。把计算结果写到标准输出文件中。

输入格式

输入文件的第一行包含一个整数nnn2≤n≤5×1062 \le n \le 5 \times 10^62n5×106)。

接下来的nnn行包含了这个给出的整数序列M1,⋯ ,MnM_1,\cdots,M_nM1,,Mn。第i+1i+1i+1行包含一个整数MiM_iMi(1≤Mi≤1091 \le M_i \le 10^91Mi109)。

输出格式

输出文件仅一行,即所求答案。

输入输出样例 #1

输入 #1

3 2 5 9

输出 #1

4

说明/提示

样例说明

一共存在444种序列,它们的平均数序列都是2,5,92,5,92,5,9。这四种序列如下:

  • 2,2,8,102,2,8,102,2,8,10
  • 1,3,7,111,3,7,111,3,7,11
  • 0,4,6,120,4,6,120,4,6,12
  • −1,5,5,13-1,5,5,131,5,5,13

数据范围

对于50%50\%50%的数据,2≤n≤10002 \le n \le 10002n10001≤Mi≤2×1041 \le M_i \le 2 \times 10^41Mi2×104

对于100%100\%100%的数据,2≤n≤5×1062 \le n \le 5 \times 10^62n5×1061≤Mi≤1091 \le M_i \le 10^91Mi109

C++实现

#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>#include<cmath>#include<algorithm>#defineintlonglongusingnamespacestd;intn,l,r,s[5000005],m[5000005];signedmain(){scanf("%lld",&n);l=-9223372036854775807,r=9223372036854775807;for(inti=1;i<=n;i++)scanf("%lld",&m[i]);for(inti=1;i<=n;i++){//前缀和if(i&1)s[i]=s[i-1]+m[i];elses[i]=s[i-1]-m[i];}for(inti=1;i<=n;i++){//求左、右端点if(i&1)r=min(r,(s[i-1]<<1ll)+m[i]);elsel=max(l,(s[i-1]<<1ll)-m[i]);}printf("%lld",max(r-l+1,0ll));return0;}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

http://www.cnnetsun.cn/news/1255393.html

相关文章:

  • 电流采样电路(差分放大 VS 传统方案)
  • 基于PLC的自动药片装瓶机控制系统设计报告及仿真分析
  • 密码检测类标准
  • 【Linux】库制作与原理(3)_动静态库的链接过程
  • 汇川H5U PLC 程序框架:全面解析与代码示例
  • 基于改进K - means算法的含电动汽车负荷源荷场景聚类:MATLAB代码实现之旅
  • 探索Qt + OpenCV视觉通用框架:从原理到代码实践
  • 反爬虫大师的网络爬取API
  • 跨平台设计协作:使用Typora与万象熔炉·丹青幻境撰写图文技术博客
  • ARM64 多级页表映射机制与Linux内核实现剖析
  • Step3-VL-10B-Base模型API安全设计:防范常见网络攻击
  • AI龙虾:傅盛的救星,还是猎户星空的幻影?
  • 【PHP 8.9类型系统终极前瞻】:20年核心贡献者独家解密RFC草案未公开的5大类型安全增强机制
  • GLM-OCR模型在AIGC内容审核流程中的集成实践
  • Jetson Nano开发实战:eMMC存储与SDK Manager系统烧录全解析
  • Qt进度条实战:从QProgressBar到QProgressDialog的进阶应用
  • 从下载到对话:通义千问2.5-7B完整部署流程详解
  • 基于Mathcad的单相逆变器PI控制器参数设计与频域验证
  • 基于N32G430的便携式宽压可调DC电源设计
  • 基于通义千问1.5-1.8B的智能客服机器人:MySQL数据库对话日志分析与优化
  • 存储技术实践笔记3_深入NVMe磁盘操作(从用户态ioctl到内核态bio的完整路径解析)
  • 百川2-13B在边缘计算场景的探讨:模型轻量化与内网穿透部署
  • Z-Image-Turbo-辉夜巫女运维指南:使用Shell脚本实现模型服务的自动监控与重启
  • Python3.11镜像效果展示:独立环境管理,轻松复现实验结果
  • GESP备考 | 2024年06月1级-编程题2《立方数判定》实战解析(C++实现)
  • Qwen3-Embedding-4B效果可视化:余弦相似度分数保留4位小数的设计意义与浮点精度验证
  • ESP32 SDIO从机与SDHOST主机寄存器级驱动开发详解
  • DAMOYOLO-S模型服务化:使用Docker容器化与Kubernetes进行集群部署
  • 深入解析FOC:从电机电磁原理到SVPWM实现
  • PP-DocLayoutV3性能调优:降低响应延迟与提升吞吐量实践