E - 小晴天老师系列——我有一个数列!
E - 小晴天老师系列——我有一个数列!
Problem Description
小晴天:“我有一个数列!”
小晴天:“我还要有很多很多的数列!”
于是小晴天就把这个数列的所有连续子数列写出来。
然后小晴天把每个连续子数列中的最大的数写出来。
那么,有多少个比K大呢?
Input
多组数据,首先是一个正整数t(t<=100),表示数据的组数
对于每组数据,首先是两个整数n(1<=n<=200000),K(0<=K<=10^9).,但所有数据中的n之和不超过1000000.
接下来是n个整数a[i](1<=a[i]<=10^9)
Output
Sample Input
2
3 2
1 2 3
3 1
1 2 3
Sample Output
3
5
Hint
对于样例一,共有6个连续子序列{1}{2}{3}{1,2}{2,3}{1,2,3}(注意{1,3}不满足题意,因为不连续)
其中最大元素大于2的共有3个{3}{2,3}{1,2,3}
对于样例二,大于1的连续子序列共有5个,{2}{3}{1,2}{2,3}{1,2,3}
题意:
对于输入的每一个数列,计算该数列的每一个子序列中最大的元素大于所给定的数的个数.
(PS:刚开始还以为是计算的是不一样的子序列,结果后来才知道1212中前面{1,2}和后面的{1,2}算作是两个不同的子序列,不是算作同一个子序列囧囧囧.)
用DP[i]来保存的以i为结符合条件的子序列的最大数量,
所以符合条件的子序列=全部的DP[i]相加。
所以
if(Num[i]>K)
DP[i]=i+1;
else
DP[i]=DP[i-1];
#include <algorithm>
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
using namespace std;
int Num[];
int DP[];
int main()
{
int T,i,j,SUM;
int Max,N,K,MAX,k;
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&N,&Max);
for(i=,SUM=;i<N;i++)
{
DP[i]=; /*初始化DP[]*/
scanf("%d",&Num[i]);
}
for(i=;i<N;i++)
{
if(Num[i]>Max) /*符合条件的话*/
{
DP[i]=i+; /*最大数量等于他前面数的个数以及自己*/
}
else
{
DP[i]=DP[i-]; /*否则等于它前一个数的最大值*/
}
SUM+=DP[i]; /*计算总和*/
}
printf("%d\n",SUM); /*输出答案*/
}
return ;
}
E - 小晴天老师系列——我有一个数列!的更多相关文章
- acdream 小晴天老师系列——我有一个数列! (ST算法)
小晴天老师系列——我有一个数列! Time Limit: 20000/10000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others)S ...
- acdream 小晴天老师系列——苹果大丰收(DP)
小晴天老师系列——苹果大丰收 Problem Description 小晴天的后花园有好多好多的苹果树,某天,苹果大丰收~小晴天总共摘了M个苹果,我们假设苹果之间是不可分辨的. 为了保存苹果,小晴天买 ...
- acdream 小晴天老师系列——晴天的后花园 (暴力+剪枝)
小晴天老师系列——晴天的后花园 Time Limit: 10000/5000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) ...
- acdream 小晴天老师系列——竖式乘法(简单穷举)
小晴天老师系列——竖式乘法 Time Limit: 4000/2000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) ...
- G - 小晴天老师系列——可恶的墨水瓶
G - 小晴天老师系列——可恶的墨水瓶 Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Othe ...
- D - 小晴天老师系列——晴天的后花园
D - 小晴天老师系列——晴天的后花园 Time Limit: 10000/5000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Oth ...
- F - 小晴天老师系列——苹果大丰收
F - 小晴天老师系列——苹果大丰收 Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Other ...
- C -小晴天老师系列——竖式乘法
C - 小晴天老师系列——竖式乘法 Time Limit: 4000/2000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others ...
- [ACdream]小晴天老师系列——竖式乘
题目链接:http://acdream.info/contest?cid=1269#problem-C Problem Description 小晴天是ACdream团队中最牛的老师之一,他最擅长数学 ...
随机推荐
- Java笔试题目-my
1.BuildString 和 BefferedString 默认初始容量为 16 , 超出就是 16*2 + 2; 可以看源代码得知; 2.ArrayList 默认的构造方法是一个空的Ob ...
- 面试题-Java基础-线程部分
1.进程和线程的区别是什么? 进程是执行着的应用程序,而线程是进程内部的一个执行序列.一个进程可以有多个线程.线程又叫做轻量级进程. 2.创建线程有几种不同的方式?你喜欢哪一种?为什么? 有三种方式可 ...
- iOS编程中throttle那些事
不知道大家对throttle这个单词是否看着眼熟,还是说对这个计算机基础概念有很清晰的了解了.今天就来聊聊和throttle相关的一些技术场景. 定义 我经常有一种感觉,对于英语这门语言的语感,会影响 ...
- 在IT界取得成功应该知道的10件事
导读:人人似乎都同意IT行业是一个艰难领域,但怎样才能克服逆境,成为一名成功的IT专业人士呢?下文这些特质应该是关键.此文作者Jack Wallen,他在前段时间写过不少文章讨论IT职场,比如退出IT ...
- java中的异常处理机制
java异常处理机制 1)在java语言中,通常将可能出现异常的语句放入try{}语句中,将出现错误后需要执行的语句放入到catch{}语句中,将无论是否发生异常都要执行的语句放在finally{}语 ...
- SVN解锁失败的解决办法
背景:在版本发布后,本人把工程文件上锁后,进行过修改但没有进行上传.后面一段时间后,开发人员需要进行修改提交,发现解锁不成功. 使用解锁命令时:提示如下: If you want to break t ...
- my_query()的引号注意
$sql="insert into lianxi values(null,'$usename','$email',$sex,$age,'$chusheng','$guanji')" ...
- 从0.5开始学Java 零
作为新世纪的码农,掌握多门语言是必须的. 我先从java学起,工作又是做c# ,现在辞职了想重新捡回java的技术,所以写一个长篇 来给自己复习 ,题目就叫做从0.5开始学java. 核心内容就是 一 ...
- php 微信 自定义分享接口
<?php class JSSDK { private $appId; private $appSecret; public function __construct($appId, $appS ...
- 【.NET】加密和解密(.NET)
类名:Security using System; using System.Security.Cryptography; using System.IO; using System.Text; na ...