当前位置:网站首页>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();
}
}边栏推荐
猜你喜欢

JS reverse question 100 - question 1

技术分享 | 接口测试价值与体系

Using C language to realize three piece chess games

mongo ssl 配置实战

技术分享 | 如何模拟真实使用场景?mock 技术来帮你

Yapi vulnerability hanging horse program chongfu.sh processing

Analysis of reentrantlock source code of AQS
![[C language] dynamic memory management](/img/bb/2ec65b38e85f53269dc03d885d70f4.png)
[C language] dynamic memory management

Which is the best air conduction Bluetooth headset? Air conduction Bluetooth headset ranking

cocos2d-x 学习笔记——瓦片地图TiledMap
随机推荐
KVM hot migration
设计测试用例的方法
mysql索引优化
【无标题】
QT使用MSVC编译器输出中文乱码问题
HDU-5805-NanoApe Loves Sequence(思维题)
MySQL主从
HDU-1159-CommonSubsequence(LCS最长公共子序列)
[hash table basics]
Leetcode brush questions diary sword finger offer II 047. Binary tree pruning
[pta---- output full arrangement]
QGraphicsView提升为QChartView
Graphic pipeline foundation (II)
RayMarching realizes volume light rendering
JS variable is equal to 0, etc. '
Analysis of the semaphore source code of AQS
SSAO by computer shader (III)
Question brushing record - linked list
技术分享 | 接口自动化测试中,如何做断言验证?
技术分享 | 如何模拟真实使用场景?mock 技术来帮你