孤独的数列

2024-01-08 06:08
文章标签 数列 孤独

本文主要是介绍孤独的数列,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Sample Input

33 1 2 32 1 14 1 1 2 3

Sample Output

627

Hint

对于1 2 3,他有6个连续子序列"1","2","3","1,2","2,3","1,2,3",都是孤独的

对于1 1,他有3个连续子数列, "1" "1" "1,1" 其中"1,1"是不孤独的

对于1 1 2 3,他有10个连续子序列,其中除了"1,1", "1,1,2","1,1,2,3"是不孤独的外,剩下的都是孤独的

#include<cstdio>//尺取法
#include<cstring>
int d[100010],vis[100010];
int main()
{int T,i;long long res;scanf("%d",&T);while(T--){int n,left,right;res=0;scanf("%d",&n);for(i=1;i<=n;i++)scanf("%d",&d[i]);memset(vis,0,sizeof(vis));left=1;right=2;vis[d[left]]=1;while(left<=right&&left<=n){			for(i=right;i<=n;i++){if(vis[d[i]])break;elsevis[d[i]]=1;}right=i;res+=right-left;vis[d[left]]=0;left++;}printf("%lld\n",res);}
}

这篇关于孤独的数列的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/582502

相关文章

c#编程:有一个分数序列,2/1,3/2,5/3,8/5,13/8,21/13....找出数列的规律并求出其前30项的和

using System;using System.Collections.Generic;using System.Linq;using System.Text;//有一个分数序列,2/1,3/2,5/3,8/5,13/8,21/13....找出数列的规律并求出其前30项的和namespace ans1{class Program{static void Main(string[]

LeetCode665.非递减数列

LeetCode刷题记录 文章目录 📜题目描述💡解题思路⌨C++代码 📜题目描述 给你一个长度为 n 的整数数组 nums ,请你判断在 最多 改变 1 个元素的情况下,该数组能否变成一个非递减数列。 我们是这样定义一个非递减数列的: 对于数组中任意的 i (0 <= i <= n-2),总满足 nums[i] <= nums[i + 1]。 示例1

[CQU 21466] zzblack与斐波那契数列 (矩阵快速幂)

CQU - 21466 求 f(⌈(5√+12)2m⌉) f( \lceil {(\frac {\sqrt{5}+1} {2})}^{2m} \rceil )%2238065148 其中 f(n) f(n)是 Fibonacci Fibonacci数列的第 n项 首先要求项数,一看 m很大,肯定是快速幂 但是底数是个浮点数,肯定不能直接快速幂 所以要给底数加一个 (5√

斐波那契数列求第N项递归改进

递归思路: int fib(int n) {if ( 2 > n) {return n;}return fib(n-1) + fib(n-2);} 展开递归计算过程,如下为求第fib(5)的递归过程。 如上发现好多重复计算过程,时间与空间的消耗也是必然的。 颠倒计算方向,由自顶而下递归,为自底而上迭代(动态规划) 算法描述为: int fib(int n) {int f = 0, g

Python数列求和

1 问题 如何用python解决数学问题?如何用python数列求和? 2 方法 代码清单 1 Courier New字体,23磅行间距>>> def sum_num():    input_num = input("输入一个0-9的整数:")    try:        input_num = int(input_num)        if input_num > 9 or input_

高中数学:数列-累加法与累乘法

一、累加法 主要用来解决类似等差数列递推公式的相关变形题目 1、推导等差数列的通项公式 2、题型1 对递推式变形,通项的系数为1,常数项d变成含n的一次函数 解: 题型2 对递推式变形,通项的系数为1,常数项d变成含n的指数函数 解: 题型3 对题型2的变形 解: 二、累乘法 主要用来解决类似等比数列递推公式的相关变形题目 1、推导等比数列通项公式

一层循环实现回旋数列

所谓回旋数,就是下面这样 3的回旋数 1 2 3 8 9 4 7 6 5 5的回旋数 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 输入n得到相应的回旋数 学完了 判断 循环 和函数 恰好看到这道题

斐波那契数列——台阶问题实现

问题:有个n阶台阶,一次可以走一个台阶,也可以走两个台阶,走到n阶台阶有多少种走法。   分析:遇到这种问题我们很容易想到递归的方法,但是这些数据的之间的关系还需要我们找到一个通项公式。可以采用归纳总结方法找出规律,不难发现这里的规律是a(n)=a(n-1)+a(n-2),算法的背后都有数学理论支撑,所以这里的数学理论就是斐波那契数列。斐波那契数列( sequence),又称黄金分割数列、

斐波那契数列(信息学奥赛一本通-T1159)

【题目描述】 用递归函数输出斐波那契数列第n项。0,1,1,2,3,5,8,13…… 【输入】 一个正整数n,表示第n项。 【输出】 第n项是多少。 【输入样例】 3 【输出样例】 1 【源程序】 #include<iostream>using namespace std;int calculate(int n);int main(){int n;cin>>n;//输入n的值cou

数列分段(信息学奥赛一本通-T1428)

【题目描述】 对于给定的一个长度为N的正整数数列A[i],现要将其分成连续的若干段,并且每段和不超过M(可以等于M),问最少能将其分成多少段使得满足要求。 【输入】 第1行包含两个正整数N,M,表示了数列A[i]的长度与每段和的最大值; 第2行包含N个空格隔开的非负整数A[i],如题目所述。 【输出】 一个正整数,输出最少划分的段数。 【输入样例】 5 6  4 2 4 5 1 【输出样例】 3