欢乐赛#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;
}
点个赞吧,谢谢!!!
全部评论 30
顶
1周前 来自 上海
2顶
1周前 来自 上海
2顶
1周前 来自 上海
2顶
1周前 来自 上海
2顶
1周前 来自 上海
2顶
1周前 来自 上海
2顶
1周前 来自 上海
2顶
1周前 来自 上海
2顶
1周前 来自 上海
2顶
1周前 来自 上海
2顶
1周前 来自 上海
2顶
1周前 来自 上海
2顶
1周前 来自 上海
2顶
1周前 来自 上海
2顶
1周前 来自 上海
2顶
1周前 来自 上海
2顶
1周前 来自 上海
2顶
1周前 来自 上海
2顶
1周前 来自 上海
2顶
1周前 来自 上海
2
有帮助,赞一个