重要提醒:
1、每道题都要看清题目是否测试多组数据,若是,则要加while(~scanf("%d",&cnt))
类似的代码
2、输出结果的最后一定要加换行符(’\n’)
3、一定要仔细仔细再仔细!!!
官方题解:2020年粤澳热身赛转型题解
个人题解
A题:莫斯方块
提升题,不会
B题:互评成绩计算
AC代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int cnt,tmp;
while(~scanf("%d %d",&cnt,&tmp)) //测试多组数据
{
for(int j=0;j<cnt;j++)
{
int tea,a,mi=101,mn=-1,k=0,sum=0;
cin>>tea;
for(int i=1;i<cnt;i++)
{
cin>>a;
if(a<=tmp&&a>=0)
{
mi=min(a,mi);
mn=max(a,mn);
sum+=a;
k++;
}
}
printf("%d\n",(int)(((sum-mi-mn)*1.0/(k-2) + tea)/2.0+0.5)); //包含四舍五入的小技巧
}
}
return 0;
}
C题:活动总台
变态题,不会
D题:发现字符串中出现次数最多的字母
AC代码:
#include<bits/stdc++.h>
using namespace std;
int num[27]={0};
int main()
{
string s;
cin>>s;
int len=s.length();
int i=0;
for(int i=0;i<len;i++)
{
num[s[i]-'a'+1]++;
}
int maxn=0;
char big;
for(int i=1;i<=len;i++)
{
if(num[i]>maxn)
{
big=i+'a'-1;
maxn=num[i];
}
}
for(int i=0;i<len;i++)
{
cout<<s[i];
if(s[i]==big)
cout<<"(出现了"<<maxn<<"次)";
if(i==len-1)
cout<<endl; //记得加换行符
}
return 0;
}
E题:度假酒店
AC代码:
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int main(){
ll n,m,total,num[3];
while(~scanf("%lld %lld %lld",&num[0],&num[1],&num[2]))
{
sort(num,num + 3);
ll min = num[2] - 1;
ll ans = 0;
if(min - num[1] > 0)
ans += min - num[1];
if(min - num[0] > 0)
ans += min - num[0];
printf("%lld\n",ans);
}
}
是真的想不明白,我最怕这种找规律题了,突破口可能是在 样例 2、3 中,1-1=0
和 1000000000000000000-1=999999999999999999
上
F题:三人成百
AC代码:
#include <bits/stdc++.h>
using namespace std;
vector<int> tmp;
int main()
{
int a;
while(cin>>a)
{
if(a==0)
break;
tmp.push_back(a);
}
int flag=0;
sort(tmp.begin(),tmp.end());
for(int i=0;i<tmp.size()-2;i++)
{
if((tmp[i]!=tmp[i-1]&&i>0)||i==0)
{
for(int j=i+1;j<tmp.size()-1;j++)
{
if((tmp[j]!=tmp[j-1]&&j>i+1)||j==i+1)
{
for(int k=j+1;k<tmp.size();k++)
{
if((tmp[k]!=tmp[k-1]&&k>j+1)||k==j+1)
{
if(tmp[i]+tmp[j]+tmp[k]==100)
{
cout<<tmp[i]<<' '<<tmp[j]<<' '<<tmp[k]<<' '<<endl;
flag=1;
}
}
}
}
}
}
}
if(flag==0) cout<<"NO"<<endl; //不存在输出 NO
return 0;
}
WeJudge 题库
莫斯方块(题号2472)、活动总台(题号2480)、度假酒店(题号1492)在 《北师珠ACM题库》 中
互动成绩计算(题号2258)、找出字符串中出现次数最多的字母(题号3916)、三人成百(题号3972)在 《GMCPC练习题》 中