codeforces round 535(div3)

寒假第一次打cf,cf的时间还是不太友好啊,不过听说div3,还是指望着来上一次分,最后在学长带的情况下A了4题
链接:https://codeforces.com/contest/1108


A:
水题,一开始想多了写了个TLE,随手改了下分类就行了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <bits/stdc++.h>
#define int long long
using namespace std;
signed main(){
ios::sync_with_stdio(false);
int t;
cin>>t;
while(t--){
int lx,rx,ly,ry;
cin>>lx>>rx>>ly>>ry;
if(rx<=ry){
cout<<lx<<" "<<ry<<endl;
continue;
}
else{
cout<<rx<<" "<<ly<<endl;
continue;
}
}
return 0;
}

B:
最大的数一定是其中输出的一个数,那么我们把数集中最大的数的约数删去,在剩下的数里找最大的数就出了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <bits/stdc++.h>
#define int long long
using namespace std;
int s[555];
bool wyh[555];
int a[505];
signed main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
cin>>s[i];
wyh[i]=false;
}
sort(s,s+n);
int MAX=s[n-1];
int cnm=-9999999999;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(s[i]*s[j]==MAX&&s[i]!=cnm){
wyh[i]=true;
wyh[j]=true;
cnm=s[i];
}
}
}
int ans=0;
for(int i=0;i<n;i++){
if(wyh[i]==false)
a[++ans]=s[i];
}
cout<<MAX<<" "<<a[ans]<<endl;
}

C:
看了code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int maxn=1e6;
char s[maxn],sa[maxn],sb[maxn];
int a[4];
int wyh=maxn;
signed main(){
int n;
cin>>n;
for(int i=0;i<n;i++)
cin>>s[i];
map<int,char>cnm;
cnm[0]='R';
cnm[1]='G';
cnm[2]='B';
a[1]=1;
a[2]=2;
do{
sa[0]=cnm[a[0]];
sa[1]=cnm[a[1]];
sa[2]=cnm[a[2]];
for(int i=3;i<n;i++){
sa[i]=sa[i-3];
}
int ans=0;
for(int i=0;i<n;i++){
if(sa[i]!=s[i])ans++;
}
if(ans<wyh){
wyh=ans;
strcpy(sb,sa);
}
}while(next_permutation(a,a+3));
cout<<wyh<<endl;
for(int i=0;i<n;i++){
cout<<sb[i];
}
cout<<endl;
return 0;
}

去了解了下next_permutation()函数
D:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int maxn=1e6;
char s[maxn];
signed main(){
int n;
int ans=0;
cin>>n;
for(int i=0;i<n;i++)cin>>s[i];
for(int i=0;i<n-1;i++){
if(s[i]==s[i+1]){
ans++;
if(s[i]!='R'&&s[i+2]!='R')
s[i+1]='R';
else if(s[i]!='G'&&s[i+2]!='G')
s[i+1]='G';
else if(s[i]!='B'&&s[i+2]!='B')
s[i+1]='B';
}
}
cout<<ans<<endl;
for(int i=0;i<n;i++)cout<<s[i];
cout<<endl;
return 0;
}

最近比赛比较多,博客也写的急,今天下午有牛客寒假训练赛2,明天还有小米月赛,后天又是牛客…
还没看CF,今天cf的分还没出,如果涨了我想再打打

晚风。
coswindy

-------------本文结束感谢您的阅读-------------