前言
今天zty带来的是B4350 [信息与未来 2025] 美味水果,大家给个赞呗, zty放暑假了,现在恢复更新了
先 赞 后 看 养 成 习 惯
众所周知,一篇文章需要一个头图(虽然这头图是粉色系,还是好看) 小声嘀咕:宝可梦,仙子伊布好可爱
先 赞 后 看 养 成 习 惯
演示用编译器及其标准
Dev C++ 6.7.5 Red panda C++14
正文
B4350 [信息与未来 2025] 美味水果
题目描述
Dr. X 收到了一份礼物:nnn 个水果,其中第 iii 个水果的好吃程度为 xix_ixi。新鲜的水果会随时间变得不如最初好吃:
- 每天,Dr. X 可以选择吃掉一个水果,并记录下该天吃掉的水果的好吃程度。
- 没有被吃掉的每个水果,好吃程度将在第二天变为 y=⌊x⌋y = \lfloor\sqrt x\rfloory=⌊x⌋,即 “开根号取整”:yyy 是满足 y2≤xy^2 ≤ xy2≤x 的最大整数。
请计算,在所有可能的吃水果顺序中,Dr. X 最多能获得多少好吃程度的总和。
输入格式
输入包含两行:第一行,一个整数 nnn,表示水果数量;第二行,nnn 个用空格分隔的整数 x1,x2,⋯ ,xnx_1 , x_2 , \cdots, x_nx1,x2,⋯,xn,表示每个水果的初始好吃程度。
输出格式
输出一个整数,表示能够获得的好吃程度总和的最大值。
输入输出样例 #1
输入 #1
2
100 10
输出 #1
103
输入输出样例 #2
输入 #2
6
1 3 7 10 15 21
输出 #2
28
说明/提示
样例 1\textbf 11 解释
在第一天,Dr.X 吃掉第一个水果,好吃程度为 100100100,另一个水果在第二天吃,好吃程度为 ⌊10⌋=3\lfloor\sqrt{10}\rfloor = 3⌊10⌋=3,吃完所有水果,好吃程度的总和为 103103103。
数据范围
对于 40%40\%40% 的数据,1≤n≤1001 ≤ n ≤ 1001≤n≤100。
对于 100%100\%100% 的数据,1≤n≤1051 ≤ n ≤ 10^51≤n≤105,水果的好吃程度 1≤xi≤1091 ≤ x_i ≤ 10^91≤xi≤109。
#include <bits/stdc++.h>
using namespace std;
int n, ans, a[100010];
int main() {
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
scanf("%d", &a[i]);
}
sort(a + 1, a + n + 1, greater<int>());
for (int i = 1; i <= n; i++) {
for (int j = 1; j < i && a[i] != 1; j++) {
a[i] = sqrt(a[i]);
}
ans += a[i];
}
printf("%d", ans);
return 0;
}
后记
作者:zty郑桐羽呀
联系方式:(企鹅 3782663736)
兄弟们给个赞呗
先 赞 后 看 养 成 习 惯