A:X星人的地盘
#include<iostream>
#include<algorithm>
#include<string>
char a[1005][1005];
using namespace std;
int main()
{
int m,n;
int s=0,sum=0;
cin>>m>>n;
for(int i=0;i<m;i++)
cin>>a[i];
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
if(a[i][j]=='X')
s++;
if(a[i][j]=='Y')
sum++;
}
}
if(s>sum)
cout<<"X win"<<endl;
if(s<sum)
cout<<"Y win"<<endl;
if(s==sum)
cout<<"The same"<<endl;
return 0;
}
B:X星人的统计
#include<iostream>
using namespace std;
int main()
{
int n;
int count[4] = { 0 };
cin >> n;
for (int i = 0; i < n; i++)
{
char c;
cin >> c;
switch (c)
{
case'A':
count[0]++;
break;
case 'B':
count[1]++;
break;
case 'C':
count[2]++;
break;
case 'D':
count[3]++;
break;
default:
break;
}
}
cout << count[0] << " " << count[1] << " " << count[2] << " " << count[3] << endl;
return 0;
}
C:X星人的报数
#include<iostream>
using namespace std;
int a[64];
int main()
{
int n;
cin>>n;
a[1]=1,a[2]=2;
for(int i=3;i<=n;i++)
if(i%2!=0)
a[i]=a[i-1]+1;
else
a[i]=2*a[i-1];
cout<<a[n]<<endl;
return 0;
}
D:X星人的变换
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
string a, b = "",c[1024];
getline(cin, a);
int t = 0;
for (int i = 0; i < a.length(); i++)
if (a[i] != ' ')
b += a[i];
else
{
c[t++] = b;
b = "";
}
if (b != "")
c[t++] = b;
reverse(c, c + t);
for (int i = 0; i < t; i++)
{
b = c[i];
int n = b.size();
swap(b[0], b[n - 1]);
cout << b << " ";
}
cout << endl;
return 0;
}
E:X星人的高考
#include<iostream>
#include<string>
using namespace std;
int main()
{
string a[4],b[4];
double s=0.0;
for(int i=0;i<4;i++)
cin>>a[i];
for(int i=0;i<4;i++)
cin>>b[i];
for(int i=0;i<4;i++)
{
string x=a[i],y=b[i];
int m=0,n=1;
for(char c:x)
{
if(y.find(c)!=string::npos)
m++;
else
n=0;
}
if(n)
{
if(m==y.size())
s+=5;
else
s+=2.5;
}
}
printf("%.1lf",s);
return 0;
}
F:X星人的纸牌
#include <iostream>
using namespace std;
int a[1005];
int main()
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
cin >> a[i];
int s = 0;
int sum=0;
while (1)
{
int t = a[0];
for (int i = 1; i < n; i++)
{
if (a[i] < t)
t = a[i];
else
{
a[s] = a[i];
s++;
}
}
sum++;
if (s == 0)
break;
else
{
n = s;
s = 0;
}
}
cout<<sum<<endl;
return 0;
}
G:HNUCM的删数问题
#pragma GCC optimize(2)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N =5e4 +5;
const int M =1e9 +7;
void solve(){
int n;
cin>>n;
vector<int> a(n);
for(int i=0;i<n;i++){
char c;
cin>>c;
a[i]=c-'0';
}
vector<int> b(n+1);
for(int i=n;i>=1;i--){
if(a[i-1]==0){
b[i]=i;
for(int j=i*2;j<=n;j+=i){
b[j]=min(b[j],b[i]);
}
}
}
int s=0;
for(int i=1;i<=n;i++){
if(a[i-1]==0){
s+=b[i];
}
}
cout<<s<<"\n";
}
int main() {
cin.tie(0)->sync_with_stdio(false);
int t;cin>>t;while(t--)
solve();
return 0;
}
H:HNUCM的元素交换
#pragma GCC optimize(2)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N =5e4 +5;
const int M =1e9 +7;
void solve(){
int n,k;
cin>>n>>k;
vector<ll> a(n);
for(int i=0;i<n;i++){
cin>>a[i];
}
vector<vector<ll>> b(k);
for(int i=0;i<n;i++){
b[i%k].push_back(a[i]);
}
for(int i=0;i<k;i++){
sort(b[i].begin(),b[i].end(),greater<ll>());
}
vector<ll> c;
for(int i=0;i<n;i++){
c.push_back(b[i%k].back());
b[i%k].pop_back();
}
ll s=0;
for(int i=0;i<k;i++){
s+=c[i];
}
ll m=s;
for(int i=k;i<n;i++){
s+=c[i]-c[i-k];
m=max(m,s);
}
cout<<m<<"\n";
}
int main() {
cin.tie(0)->sync_with_stdio(false);
int t;cin>>t;while(t--)
solve();
return 0;
}