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

上海市计算机学会竞赛平台2025年5月月赛丙组稳定区间

题目描述

Carol 有一个长度为 nn 的数组 aa,他定义函数 f(l,r)=∑i=lr−1(ai−ai+1)f(l,r)=∑i=lr−1​(ai​−ai+1​),其中 1≤l≤r≤n1≤l≤r≤n,特殊地,f(i,i)f(i,i) 定义为 00。

如果 f(l,r)≠(ar−al)f(l,r)​=(ar​−al​),则称一个子区间 [l,r](1≤l≤r≤n)[l,r](1≤l≤r≤n) 是不稳定的。

Carol 想知道数组 aa 有多少个不稳定的子数组。

输入格式

第一行一个整数 TT 表示数据组数,对于每组数据:

第一行一个整数 nn 表示数组长度。

第二行 nn 个整数 a1,a2,…,ana1​,a2​,…,an​ 表示数组 aa。

输出格式

对于每组数据,输出一行一个整数表示答案。

数据范围

对于 30%30% 的数据,∑n≤1000∑n≤1000,0≤ai≤10≤ai​≤1。

对于 60%60% 的数据,∑n≤105∑n≤105,0≤ai≤10≤ai​≤1。

对于 100%100% 的数据,1≤T≤1051≤T≤105,n≥1n≥1,∑n≤105∑n≤105,0≤ai≤1090≤ai​≤109。

样例数据

输入:

3
3
10 20 30
4
1 2 1 2
5
1 2 3 4 5

输出:

3
4
10

说明:

对于第一组数据,子区间[1,2],[2,3],[1,3]都是不稳定的。

详见代码:

#include <bits/stdc++.h>
using namespace std;
map <int,int> mp;
long long t,n,a;
int main()
{cin>>t;while(t--){mp.clear();cin>>n;long long cnt=0;for(int i=1;i<=n;i++){cin>>a;cnt+=mp[a];mp[a]++;}cout<<n*(n-1)/2-cnt<<endl;}return 0;
}

http://www.xdnf.cn/news/9308.html

相关文章:

  • 计算机视觉---YOLOv3
  • 5.0.7 TabControl的使用
  • 如何创建一个流程图/思维导图
  • 3分钟学会跨浏览器富文本编辑器开发:精准光标定位+内容插入(附完整代码)
  • MATLAB使用多个扇形颜色变化表示空间一个点的多种数值
  • STM32CubeMX,arm-none-eabi-gcc简单试用
  • MybatisPlus - Interceptor(拦截器)的功能点
  • AWS创建github相关的角色
  • Debian 系统 Python 开发全解析:从环境搭建到项目实战
  • Conda:环境移植及更新1--使用conda-pack
  • 永磁同步电机控制算法--基于电磁转矩反馈补偿的新型IP调节器
  • OpenCv高阶(十八)——dlib人脸检测与识别
  • Java设计模式之职责链模式详解
  • Sql Server TLSv1 协议问题
  • 机器学习算法-决策树
  • 【CSS】CSS 和 SASS 的区别
  • 【排序算法】快速排序详解--附详细流程代码
  • 鸿蒙 Form Kit(卡片开发服务)
  • 【AI论文】使用检索和代码工具将LLM Agent提取为小型模型
  • python打卡day38@浙大疏锦行
  • ROS学习 进程通信 nodelet
  • 预约按摩小程序源码介绍
  • java集合面试
  • 大语言模型 21 - MCP 自动操作 Figma+Cursor 实现自动原型开发!
  • 2025年该如何备考交安C证呢?
  • 多模态大语言模型arxiv论文略读(九十五)
  • PHP中的语句
  • Linux `pwd` 命令深度解析与高阶应用指南
  • mysql存储过程中rollback、transaction、动态sql的使用
  • 本地服务器搭建的git如何让外网访问?配置公网地址实现远程连接私有仓库