CF1692G 2^Sort
2^Sort
题面翻译
给你一个长度为 的数组 ,问你在这个数组中,有多少个长度为 的区间,符合以下的条件:
由tzyt翻译
题目描述
Given an array of length and an integer , find the number of indices such that the subarray with length (not with length ) has the following property:
- If you multiply the first element by , the second element by , ..., and the ( )-st element by , then this subarray is sorted in strictly increasing order.
More formally, count the number of indices such that $
输入格式
The first line contains an integer ( ) — the number of test cases.
The first line of each test case contains two integers , ( , ) — the length of the array and the number of inequalities.
The second line of each test case contains integers ( ) — the elements of the array.
The sum of across all test cases does not exceed .
输出格式
For each test case, output a single integer — the number of indices satisfying the condition in the statement.
样例 #1
样例输入 #1
6
4 2
20 22 19 84
5 1
9 5 3 2 1
5 2
9 5 3 2 1
7 2
22 12 16 4 3 22 12
7 3
22 12 16 4 3 22 12
9 3
3 9 12 3 9 12 3 9 12
样例输出 #1
2
3
2
3
1
0
提示
In the first test case, both subarrays satisfy the condition:
- : the subarray , and .
- : the subarray , and .
In the second test case, three subarrays satisfy the condition: - : the subarray , and .
- : the subarray , and .
- : the subarray , and .
- : the subarray , but , so this subarray doesn't satisfy the condition.
思路:
主要是把公式好好思考一遍,从公式入手,分析前一项和当前项的关系,可以发现a[i]<2a[i+1],所以这道题是求连续区间的满足这个条件且满足区间长度为k+1的这个问题。那么求一段区间连续的和用前缀和来写,我们只要把符合a[i]<2a[i+1]这个条件视为正确1,不满足为0,从k个长度的区间来看,一定有k-1个数对是满足这个需求的。所以这道题主要用前缀和就能搞定。
代码:
#include<iostream>
using namespace std;
int main(){
int t;cin>>t;
while(t--){
int n,x;cin>>n>>x;
int a[n+1],s[n+1];
for(int i=1;i<=n;i++){
cin>>a[i];//读入数据
}
//开始前缀和的预处理
for(int i=1;i<=n;i++){
bool flag=0;
if(a[i]<2*a[i+1]){
flag=1;//为合法数量
}
s[i]=s[i-1]+flag;
}
int ans=0;
//然后统计满足区间的数量
//长度为k+1的区间,实质上满足条件的数对只存在k+1-1个,也就是k个。
for(int i=1;i<=n-x;i++)
if(s[i+k-1]-s[i-1]==x)//i+k-1为右端点,i为左端点,共有i+k-1-i+1=k个数
ans++;
cout<<ans<<endl;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!