B
真服了🥲,这题可以直接暴力双循环来ac😥,代码如下
#include<bits/stdc++.h>
using namespace std;
void solve(int m){
vector<int> a(m+1);
for(int i=1;i<=m;i++){
cin>>a[i];
}
for(int i=1;i<=m-1;i++){
for(int k=i+1;k<=m;k++){
if(gcd(a[i],a[k])>1){
cout<<a[i]<<" "<<a[k]<<endl;
return;
}
}
}
cout<<-1<<endl;
return;
}
int main(){
int t;
cin>>t;
for(int j=0;j<t;j++){
int n;
cin>>n;
solve(n);
}
return 0;
}
C
这道题就是要让字符串变成两种,1.0101···0101,2.1010···1010即可, 记录变成这两种的操作次数,比较大小即可,代码如下😎
#include<bits/stdc++.h>
using namespace std;
#define int long long
void solve() {
int n;
string s;
cin>>n>>s;
int ans=LLONG_MAX;
for (int i=0; i<2;i++) {
int cnt0=0,cnt1=0;
for (int j =0;j<n;j++) {
char c ='0'+((i + j) % 2);
if (s[j]!=c) {
if (s[j]=='0') {
if (cnt1>0)
cnt1--;
cnt0++;
} else {
if (cnt0>0)
cnt0--;
cnt1++;
}
}
}
int cz=cnt0+cnt1;
ans=min(ans, cz);
}
cout<<ans<<endl;
}
signed main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int T = 1;
cin>>T;
while (T--) solve();
return 0;
}
F
这题很简单,画图找规律就行了,每五次一个拐弯,代码如下😊
#include<bits/stdc++.h>
using namespace std;
int main(){
int t;
cin>>t;
for(int i=0;i<t;i++){
int n;
cin>>n;
cout<<n-1+n/5<<endl;
}
return 0;
}

京公网安备 11010502036488号