解题思路:
取最大,然后数学上(>=6)用开根号,(<6)用/2, 注意6是因为向下取整了(不然交点应该为4)。把所有次数用完,取最大
注意事项:
这能过我是没想到了……明显有一些数据,贪心是不行的。
参考代码:
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const ll N = 1e5 + 9;
ll h[N];
priority_queue<ll> pq;
signed main(){
ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
ll n, p, q, ans = 0; cin >> n >> p >> q;
for(int i = 1; i <= n; i++) {
cin >> h[i];
pq.push(h[i]);
}
ll mx = pq.top(); if(p || q) pq.pop();
while(p || q){
if((mx >= 6 && p) || !q) {mx = sqrt(mx); p--;}
else if(q) {mx /= 2; q--;}
pq.push(mx);
mx = pq.top(); if(p || q) pq.pop();
}
while(!pq.empty())
ans += pq.top(); pq.pop();
cout << ans << ' ';
return 0;
}
0.0分
3 人评分
简单编码 (C++代码)(这里推荐用switch)浏览:964 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:600 |
【回文数(二)】 (C++代码)浏览:875 |
C语言训练-大、小写问题 (C语言代码)浏览:2378 |
【出圈】 (C语言代码)浏览:560 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:616 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:594 |
C语言程序设计教程(第三版)课后习题7.4 (C语言代码)浏览:1253 |
WU-蓝桥杯算法提高VIP-勾股数 (C++代码)浏览:1607 |
【绝对值排序】 (C语言代码)浏览:853 |