当前位置:网站首页>Hdu-5806-nanoapelovesequence Ⅱ (ruler method)
Hdu-5806-nanoapelovesequence Ⅱ (ruler method)
2022-07-28 06:51:00 【__ Simon】
NanoApe Loves Sequence Ⅱ
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/131072 K (Java/Others)Total Submission(s): 1348 Accepted Submission(s): 588
In math class, NanoApe picked up sequences once again. He wrote down a sequence with n numbers and a number m on the paper.
Now he wants to know the number of continous subsequences of the sequence in such a manner that the k-th largest number in the subsequence is no less than m.
Note : The length of the subsequence must be no less than k.
In each test case, the first line of the input contains three integers n,m,k.
The second line of the input contains n integers A1,A2,...,An, denoting the elements of the sequence.
1≤T≤10, 2≤n≤200000, 1≤k≤n/2, 1≤m,Ai≤109
1 7 4 2 4 2 7 7 6 5 1
18
Ruler method :
The whole process is divided into 4 Step :
1. Initialize left and right endpoints
2. Expanding the right endpoint , Until the conditions are met
3. If the conditions cannot be met in the second step , Then terminate , Otherwise, update the results
4. Expand the left endpoint 1, Then go back to step two
#include <stdio.h>
int a[200010];
int main(){
int t,i;
int n,m,k;
int l,r,tmp;
long long sum;
scanf("%d",&t);
while(t--){
scanf("%d%d%d",&n,&m,&k);
for(i=0;i<n;i++){
scanf("%d",a+i);
}
sum=tmp=l=r=0;
while(1){
if(r>=n) break;
while(1){
if(r>=n) break;
if(a[r]>=m){
tmp++;
}
if(tmp==k){
sum+=(n-r);
break;
}
r++;
}
if(r>=n) break;
while(1){
if(l>r) break;
if(a[l]<m){
sum+=(n-r);
}
else{
l++;
tmp--;
break;
}
l++;
}
r++;
}
printf("%lld\n",sum);
}
return 0;
}Other people's code :
Code 1:
#include <cstdio>
#define N 200050
int a[N];
long long d[N];
int main()
{
int T,n,m,k;
scanf("%d",&T);
while(T--){
scanf("%d %d %d",&n,&m,&k);
int t=0;
long long sum=0;
for(int i=1; i<=n; i++){
scanf("%d",&a[i]);
if(a[i]>=m){
d[++t]=i;
if(t>=k){
if(t==k) sum+=d[1]*(n-i+1);
else sum+=(d[t-k+1]-d[t-k])*(n-i+1);
}
}
}
printf("%lld\n",sum);
}
return 0;
}Code 2:
#include <cstdio>
#define N 200050
int a[N];
int main(){
int T,n,m,k;
scanf("%d",&T);
while(T--){
scanf("%d %d %d",&n,&m,&k);
int t=0;
long long sum=0;
for(int i=1; i<=n; i++)
scanf("%d",&a[i]);
int r=1,num=0;
for(int i=1;i<=n;i++){
while(r<=n&&num<k){
if(a[r]>=m) num++;
r++;
}
if(num>=k) sum+=n-r+2;
if(a[i]>=m) num--;
}
printf("%lld\n",sum);
}
return 0;
}Code 3:
#include <cstdio>
const int MAXN = 200000 + 9;
int a[MAXN];
void solve(){
int n, m, k;
scanf("%d%d%d", &n, &m, &k);
for (int i = 0; i < n; i++){
scanf("%d", &a[i]);
}
long long ans = 0;
int r;
int t = 0;
for (r = 0; r < n; r++) {
if (a[r] >= m) t++;
if (t == k) break;
}
ans += (n - r);
for (int l = 1; l < n; l++) {
if (a[l - 1] >= m) {
t--;
r++;
for (;r < n; r++) {
if (a[r] >= m) t++;
if (t == k) break;
}
if (r >= n) break;
ans += (n - r);
} else {
ans += (n - r);
}
}
cout << ans << endl;
}
int main(){
//freopen("in", "r", stdin);
int t;
scanf("%d",&t);
while(t--){
solve();
}
}边栏推荐
- cocos2d-x 学习笔记——瓦片地图TiledMap
- InitializingBean接口及示例
- Everything you don't know about time complexity is here
- Analysis of cyclicbarrier source code of AQS
- [dynamic planning -- the best period series for buying and selling stocks]
- Mongodb quick start
- [untitled]
- [pta ---- traversal of tree]
- Qgraphicsview promoted to qchartview
- Which is the best air conduction Bluetooth headset? Air conduction Bluetooth headset ranking
猜你喜欢

搭建PHP7私有仓库

Project compilation nosuch*** error problem

MySQL主从

KVM热迁移

MySQL主主

MySQL master master

Graphic pipeline foundation (I)

Leetcode brush question diary sword finger offer II 048. serialization and deserialization binary tree
![[dynamic planning -- the best period for buying and selling stocks series 3]](/img/9f/f6c07264f5ffaa0fdfcc724c713e83.png)
[dynamic planning -- the best period for buying and selling stocks series 3]

SSAO by computer shader (III)
随机推荐
Elastic common high frequency commands
CentOS7部署MySQL数据库服务器
redis实现分布式锁思路及redission分布式锁主流程分析
Ubuntu18.04搭建redis集群【学习笔记】
Analysis of reentrantlock source code of AQS
[dynamic planning -- the best period for buying and selling stocks series 3]
Battle plague Cup -- strange shape
技术分享 | 接口自动化测试中,如何做断言验证?
MySQL master-slave
测试面试题集锦(五)| 自动化测试与性能测试篇(附答案)
MySQL主主
Compilation and preprocessing of C language
技术分享 | 实战详解接口测试请求方式Get、post
SSAO by computer shader (III)
Water drop effect on umbrella
Water rendering example
RayMarching实现体积光渲染
小tips
Brief analysis of order transaction
搭建PHP7私有仓库