题意:

解法:

要让一个数切割之后权值最小,那么一定是均等切割.先计算出总权值,
将所有数以{总大小,切割次数}的形式丢尽堆中,
因为题目要让总权值最小,那么优先取出:再切割一次,权值变化更大的即可.

code:

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int maxm=1e5+5;
int cal(int val,int cnt){//把val分成cnt份的最小权值int ans=0;int c=val/cnt;//每份大小int rem=val-c*cnt;//多出来的ans+=c*c*(cnt-rem);ans+=(c+1)*(c+1)*rem;return ans;
}
struct Node{int val;int cnt;friend bool operator<(const Node& a,const Node& b){return cal(a.val,a.cnt)-cal(a.val,a.cnt+1)<cal(b.val,b.cnt)-cal(b.val,b.cnt+1);}
};
priority_queue<Node>q;
int a[maxm];
int n,k;
signed main(){ios::sync_with_stdio(0);cin.tie(0);cin>>n>>k;int ans=0;for(int i=1;i<=n;i++){int x;cin>>x;ans+=x*x;q.push({x,1});}for(int i=n;i<k;i++){Node x=q.top();q.pop();ans-=cal(x.val,x.cnt)-cal(x.val,x.cnt+1);q.push({x.val,x.cnt+1});}cout<<ans<<endl;return 0;
}

Codeforces1428 E. Carrots for Rabbits(贪心+堆)相关推荐

  1. Codeforces 1428E Carrots for Rabbits 贪心

    文章目录 题意 题解 题目链接 我又掉了. CF上少见的优秀贪心题,有必要拿出来讲一下. 题意 n个数切成k份,求切出数的平方和的最小值. 题解 首先证明当对一个数字切的份数越多,因切分而减少的平方和 ...

  2. CF1428 E. Carrots for Rabbits 贪心+优先队列

    n个数切成k份,求切出数的平方和的最小值. 有个比较显然的结论: 对于一个数x,把它分成y份,求平方和sm,使得sm最小的分法一定是均分. 而把一个数分成y份,平方和与分成y-1份的平方和减量设为Cy ...

  3. 【做题记录】CF1428E Carrots for Rabbits—堆的妙用

    CF1428E Carrots for Rabbits 题意: 有 \(n\) 个萝卜,每个萝卜的初始大小为 \(a_i\) .现在要把这些萝卜切为为 \(k\) 个.吃每一个萝卜的时间为这个萝卜的大 ...

  4. (贪心)CF1428E. Carrots for Rabbits

    CF1428E. Carrots for Rabbits 题意: 给你nnn个正整数,分成kkk个正整数,要求分好之后∑i=1kai2\sum\limits_{i=1}^{k}{a_i}^{2}i=1 ...

  5. E. Carrots for Rabbits(贪心)

    题意: 有n个萝卜 ,每根萝卜长度不一样,现在将这些萝卜分为k段 这k根萝卜每根萝卜的花费是长度的平方,求最小的花费. 思路: 原本想的是放进将萝卜放进大根堆,然后取最大的对半分,其实这样是不正确的, ...

  6. codeforces 1428E. Carrots for Rabbits(贪心(非常优秀的贪心题),结构体重载运算符)

    题目链接:https://codeforces.ml/contest/1428/problem/E 题意:给定n个数,要求将这些数拆分为k个数,是这些数的平方和最小. 题解:结构体,一开始想到的是每次 ...

  7. Codeforces Raif Round 1 (Div. 1 + Div. 2) E. Carrots for Rabbits(优先队列+贪心)

    原题链接 题意 有N个萝卜,K只兔子,要求把N个萝卜分成K份,一个兔子吃一个长为X的萝卜的时间为X*X,求怎么分能使最后的时间最短. 思路 刚看到这个题的时候,刚开始的思路是,把所有的萝卜都存在一个大 ...

  8. codeforces(E. Carrots for Rabbits)贪心

    题目链接 给你n个数,每个数再被切分若干份(整数),比如5可以切分为2.3或2.2.1等 通过切割将n个数变成k个数,使这k个数的平方和最小. 一开始是想将所有数放在一个优先队列里,每次取出最大的一分 ...

  9. Codeforces Raif Round 1 (Div. 1 + Div. 2) E. Carrots for Rabbits(贪心)

    传送门 题目大意 给出nnn个萝卜,现在需要分成长度为正整数的若干个萝卜,定义每个长度为xxx的胡萝卜贡献为x2x^2x2,问最小的贡献是多少. 解题思路 手玩一下样例,还是不难得出对于一个胡萝卜若需 ...

最新文章

  1. 实战 | 哪个瞬间让你突然觉得CV技术真有用?
  2. 斐波那契数列及青蛙跳台阶问题
  3. 如何访问“我的网站”
  4. zoj 2874 amp; poj 3308 Paratroopers (最小割)
  5. Windows Phone开发(35):使用Express Blend绘图 转:http://blog.csdn.net/tcjiaan/article/details/7493010...
  6. 使用python发送邮件和接收邮件
  7. JVM学习04:类的文件结构
  8. 数据库:MYSQL相关设计规范梳理,值得收藏!
  9. T-SQL备忘(2):聚合函数运算和NULL
  10. 未来网闸的发展趋势(实际应用需求,解决方案)
  11. Flutter实战之GetX工具类封装-GetUtils
  12. 云计算与大数据” 研讨会:迎来新的科学价值
  13. 智能衣橱控制系统的设计
  14. 论文笔记-------Topological sound
  15. 传统BI+敏捷BI+智能BI
  16. easyExcel导出数据并设置单元格下拉数据
  17. Android源码分析-PackageManagerService(PMS)源码分析(三)- queryIntentActivities函数来查找activity
  18. 科研伦理与学术规范期末考试1题库
  19. FPGA中ROM IP与RAM IP核配置与调用
  20. 高并发测试工具webbench

热门文章

  1. 浦东搬场公司搬家风水注意事项
  2. CSAPP:MallocLab
  3. 推荐系统实战4——EasyRec 搭建DSSM召回模型实现CTR点击平台
  4. 2022-2028中国ITX电脑机箱市场现状研究分析与发展前景预测报告
  5. CTO 写低级 Bug,致公司 70 GB 数据泄露!
  6. 新手小白H5微应用接入浙里办流程指南
  7. 2021年11月_IEEE Transactions on Geoscience and Remote Sensing_科技前言热点调查表
  8. mysql 统计每年的数据统计_Mysql统计每年每个月的数据——详细教程
  9. 《逆袭大学——传给IT学子正能量》CSDN连载目录
  10. 带你一起分析cut the rope(切绳子游戏)中绳子的制作方法