2020.10.23个人赛补题报告

b题:set真香

set可以自动去重,可以使用clear()一键清空,使用insert()插入元素,对于b题只需要遍历一遍,如果元素>='A'&&<='Z'记录一下set数组中元素个数,用来找到最大值,否则就继续插入元素。

#include<bits/stdc++.h> #define ll long long using namespace std; int main(){ ll n; cin>>n; ll i; string s; cin>>s; set<int>x; ll maxx=0; ll m=0; for(i=0;i<n;i++){ if(s[i]>='A'&&s[i]<='Z'){ m=x.size(); maxx=max(m,maxx); x.clear(); }else{ x.insert(s[i]); } } m=x.size(); maxx=max(m,maxx); cout<<maxx<<endl; }

e题:

找规律,四个一循环,只用确定一种颜色灯在循环中的第一个位置,那么这种颜色下一个颜色相同的灯一定出现在循环的相同位置。启发:一般有规律的题目找到关键规律很重要。

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll a[5]={0};
int main(){
string s;
cin>>s;
ll i;
ll n=0;
n=s.size();
ll r=0,b=0,y=0,g=0;
for(i=0;i<n;i++){
if(s[i]=='R'){
r=i%4;
}else if(s[i]=='B'){
b=i%4;
}else if(s[i]=='Y'){
y=i%4;
}else if(s[i]=='G'){
g=i%4;
}else{
a[i%4]++;
}
}
cout<<a[r]<<" "<<a[b]<<" "<<a[y]<<" "<<a[g]<<endl;
}

posted @ 2020-10-30 09:17  yyscn  阅读(39)  评论(0)    收藏  举报