欢乐赛#33全题解!!!
2024-11-18 11:06:05
发布于:上海
第一次写欢乐赛全题解,请多谅解!!!(主要是太菜AK不了)
T1
题目
直接输出即可,但要注意转义符‘\’不能直接输出,应加上‘\’;
Python题解
print("\\n")
C++题解
#include<iostream>
using namespace std;
int main(){
cout<<"\\n";
return 0;
}
T2
题目
利用求和公式可以得到1到n的和为n*(n+1)/2,依次输出;
(别忘了不开long long见祖宗)
#include<iostream>
using namespace std;
int main(){
long long n,t;
cin>>n;
for(int i=1;i<=n;i++){
cin>>t;
cout<<t*(t+1)/2<<endl;
}
return 0;
}
T3
题目
遍历字符串,依次记录a,e,i,o,u的次数,再分别乘以各自的W并相加即可。
#include<iostream>
using namespace std;
int main(){
string s;
long long a[6]={0,0,0,0,0,0},w[6],sum=0;
cin>>s;
for(int i=1;i<=5;i++){
cin>>w[i];
}
for(int i=0;i<=s.size()-1;i++){
if(s[i]=='a')a[1]++;
else if(s[i]=='e')a[2]++;
else if(s[i]=='i')a[3]++;
else if(s[i]=='o')a[4]++;
else if(s[i]=='u')a[5]++;
}
for(int i=1;i<=5;i++){
sum+=a[i]*w[i];
}
cout<<sum;
return 0;
}
T4
题目
(关于这题用了我7遍提交记录这件事,注意平方优化)
先算出数组中各数的因子数量,再对因子数量进行排序,从大到小相加直到
大于等于m,输出数量即可。
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
bool cmp(int a,int b){
return a>b;
}
int main(){
int n,m,a[100005];
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
int sum=0;
for(int j=1;j*j<=a[i];j++){
if(a[i]%j==0)sum+=2;
if(j*j==a[i]) sum--;
}
a[i]=sum;
}
sort(a+1,a+n+1,cmp);
int sum=0;
for(int i=1;i<=n;i++){
sum+=a[i];
if(sum>=m) {cout<<i;return 0;}
}
return 0;
}
T5
题目
遍历数组,先记录下标为奇数和偶数对应的元素的和,比较是否相等;
再遍历数组,判断是否全部A[i]=A[n−i+1]。
#include<iostream>
using namespace std;
int main(){
int n,t,a[100005];
cin>>t;
for(int i=1;i<=t;i++){
cin>>n;
int sum=0,s1=0;
for(int j=1;j<=n;j++){
cin>>a[j];
sum+=a[j];
}
for(int j=1;j<=n;j+=2){
s1+=a[j];
}
if(sum!=2*s1){ cout<<"No\n";continue;}
bool x=0;
for(int j=1;j<=n/2;j++){
if(a[j]!=a[n-j+1]){x=1;break;}
}
if(x) cout<<"Yes\n";
else cout<<"No\n";
}
return 0;
}
T6
题目
看到这恐怖的数据范围,一定需要找规律。先对个位数进行特判,直接输出。
再观察,可以看出只有全部由9构成,字典序才能最大。因此判断,如除个位以外都为9,
直接输出,其余输出(位数-1)遍9.
#include<iostream>
using namespace std;
int main(){
string s;
cin>>s;
if(s.size()==1){ cout<<s;return 0;}
bool x=1;
for(int i=0;i<=s.size()-2;i++){
if(s[i]!='9') {x=0;break;}
}
if(x==1){cout<<s;return 0;}
for(int i=0;i<=s.size()-2;i++){
cout<<'9';
}
return 0;
}
点个赞吧,谢谢!!!
全部评论 32
顶
2024-11-14 来自 上海
2顶
2024-11-14 来自 上海
2顶
2024-11-14 来自 上海
2顶
2024-11-12 来自 上海
2顶
2024-11-12 来自 上海
2顶
2024-11-12 来自 上海
2顶
2024-11-11 来自 上海
2顶
2024-11-11 来自 上海
2顶
2024-11-11 来自 上海
2顶
2024-11-11 来自 上海
2顶
2024-11-11 来自 上海
2顶
2024-11-11 来自 上海
2顶
2024-11-11 来自 上海
2顶
2024-11-11 来自 上海
2顶
2024-11-11 来自 上海
2顶
2024-11-11 来自 上海
2顶
2024-11-11 来自 上海
2顶
2024-11-11 来自 上海
2顶
2024-11-11 来自 上海
2顶
2024-11-11 来自 上海
2
有帮助,赞一个