day 10
2025-02-07 19:53:47
发布于:上海
C - Twice
#include<bits/stdc++.h>
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
int n;
int a[50] = {0};
cin>>n;
for(int i = 1;i<=n;i++){
int x;
cin>>x;
a[x]++;//桶数组
}
int sum = 0;
for(int i = 1;i<=n;i++) if(a[i]>0) sum += a[i]/2;
cout<<sum<<endl;
}
return 0;
}
D - Turtle Puzzle: Rearrange and Negate
#include<bits/stdc++.h>
using namespace std;
int main(){
int t,x;
cin>>t;
while(t--){
int n;
cin>>n;
int ans=0;
for (int i=1;i<=n;i++) {
cin>>x;
ans+=abs(x);
}
cout<<ans<<endl;
}
return 0;
}
B - Dictionary
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int n,l,cnt,maxn;
char a,b;
int main(){
int T;
cin>>T;
while(T--){
cin>>a>>b;
int cnt = 0;
bool ju = false;
for(char i='a';i<='z';i++){
for(char j='a';j<='z';j++){
if(i==j)continue;
if(a==i && b==j)ju=true;
cnt++;
if(ju==true)break;
}
if(ju==true)break;
}
cout<<cnt<<endl;
}
return 0;
}
Fall Down
#include<bits/stdc++.h>
using namespace std;
int n,m;
char g[60][60];
void dfs(int x,int y){
if(x==n) return ;
if(g[x+1][y]!='o'){
swap(g[x][y],g[x+1][y]);
dfs(x+1,y);
}
}
int main(){
int t;
cin>>t;
while(t--){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>g[i][j];
}
}
for(int i=n;i>=1;i++){
for(int j=1;j<=m;j++){
if(g[i][j]=='*') dfs(i,j);
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cout<<g[i][j];
}cout<<endl;
}cout<<endl;
}
return 0;
}
F. Superultra's Favorite Permutation
#include <bits/stdc++.h>
using namespace std;
int t,n,num1,num2;
bool isprime(int num){
if (num<2) return false;
for (int i=2;i*i<=num;i++){
if (num%i==0) return false;
}
return true;
}
int main(){
cin>>t;
while (t--){
cin>>n;
bool flag=false;
for (int i=1;i<=n;i+=2){
if (flag) break;
for (int j=2;j<=n;j+=2){
if (flag) break;
if (!isprime(i+j)){
num1=i;
num2=j;
flag=true;
}
}
}
if (not flag) {
cout<<-1<<endl;
continue;
}
for (int i=1;i<=n;i+=2){
if (i==num1) continue;
cout<<i<<" ";
}
cout<<num1<<" "<<num2<<" ";
for (int i=2;i<=n;i+=2){
if (i==num2) continue;
cout<<i<<" ";
}
cout<<endl;
}
}
E. Alternating String
#include<bits/stdc++.h>
using namespace std;
int suma[30][2],sumb[30][2];
char s[200010];
int t,n;
int main(){
cin>>t;
while(t--){
memset(suma,0,sizeof(suma));
memset(sumb,0,sizeof(sumb));
int maxa=0,maxb=0;
cin>>n;
for(int i=1;i<=n;i++){
cin>>s[i];
}
if(!(n&1)){
for(int i=1;i<=n;i++) suma[s[i]-'a'+1][i%2]++;
for(int i=1;i<=26;i++) maxa=max(maxa,suma[i][0]);
for(int i=1;i<=26;i++) maxb=max(maxb,suma[i][1]);
cout<<n-maxa-maxb<<endl;
continue;
}
for(int i=1;i<=n;i++) sumb[s[i]-'a'+1][i%2]++;
int cnt=0;
for(int i=1;i<=n;i++){
maxa=maxb=0;
if(i>1) suma[s[i-1]-'a'+1][(i%2)^1]++;
sumb[s[i]-'a'+1][i%2]--;
for(int j=1;j<=26;j++){
maxa=max(maxa,suma[j][0]+sumb[j][1]);
maxb=max(maxb,suma[j][1]+sumb[j][0]);
}
cnt=max(cnt,maxa+maxb);
}
cout<<n-cnt<<endl;
}
return 0;
}
这里空空如也
有帮助,赞一个