专栏文章
题解:B4350 [信息与未来 2025] 美味水果
B4350题解参与者 3已保存评论 3
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @mip1faw4
- 此快照首次捕获于
- 2025/12/03 04:35 3 个月前
- 此快照最后确认于
- 2025/12/03 04:35 3 个月前
B3450 题解:
主要思路:
- 将序列从大到小排序。
- 递归求解当前值的平方根。
- 求和输出。
代码实现:
定义一个数组 ,循环输入 数组,将 数组快排(这里我用的
greater<int>() 比较器),再循环处理一遍,每次循环用递归函数处理当前值,最后求和输出。AC code:
CPP#include<bits/stdc++.h>
#define int long long
using namespace std;
int fun(int x,int y){
int num=x;
int k=y;
num=sqrt(num);//开方
k--;
//特判
if(num==1){
return num;
}
if(k==1){
return num;
}else{
fun(num,k);
}
}//递归函数
int n;
int a[100010];
signed main(){
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
//快排
sort(a+1,a+n+1,greater<int>());
int sum=a[1];
for(int i=2;i<=n;i++){
//调用函数,a[i] 为当前待处理值,i 为当前循环次数
a[i]=fun(a[i],i);
sum+=a[i];
}
cout<<sum;
return 0;
}
相关推荐
评论
共 3 条评论,欢迎与作者交流。
正在加载评论...