3.1ACM定级赛复盘
简单题为 I , J , A , H
中等题为 B , D , E
难题为 F , G
防AK为 C
每一阶段的题目按顺序递增。
I Copying 简单双指针
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
const int N=100010;
int a[N];
int main()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
int res=0;
int i=1;
while(i<=n)
{
while(a[i]==a[i+1]&&i<=n-1)
{
i++;
}
res++;i++;
}
cout<<res<<endl;
}
return 0;
}
同类型:
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
const int N = 100010;
int n;
int a[N],s[N];
int main()
{
scanf("%d", &n);
for(int i=0;i<n;i++)scanf("%d",&a[i]);
//1 2 2 3 5
int len=0;
for(int i=0,j=0;i<n;i++)//尾部
{
s[a[i]]++;
while(j<i&&s[a[i]]>1)//s[]:一个数的个数大约2
{
s[a[j]]--;
j++;
}
len=max(len,i-j+1);//更新长度
}
printf("%d",len);
return 0;
}
J Building 简单模拟题
判断三位数和两位数输出的区别
A Choosing 贪心
回文数
H Studying 找规律
B Finding 前缀和
D Drinking 经典二分
同类型题:ACM-ICPC-OJ训练营