原题链接

题意:

给你n个数,要你把n个数切成k个。求切后最小平方和。

题解

一开始就想着把每个数放进优先队列里,然后把最大的平分,再放回去。但这样是错的。如1 3 100 :33 33 34会更好。


用优先队列维护结构体{a,b,c}。b存的是读入的数。a表示给这个数切(c刀-c+1刀)这个数的平方差值,c代表现在切的刀数。并对a进行大到小排序。

反正就是一刀一刀的切,取差值最大的那个。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
struct node
{ll a,b,c;friend bool operator<(node x,node y){return x.a<y.a;}
};
priority_queue<node>q;
ll cut(int a,int x)//把a切成x刀,返回平方差值
{ll m=a/x,t=a%x;//t代表有t个数是m+1。。。。(x-t)个数是mreturn t*(m+1)*(m+1)+(x-t)*m*m;
}
int main()
{int n,k;cin>>n>>k;ll ans=0;for(int i=1;i<=n;i++){ll x;cin>>x;ans+=x*x;q.push({cut(x,1)-cut(x,2),x,2});}for(int i=n;i<k;i++){auto x=q.top();q.pop();ll a=x.a,b=x.b,c=x.c;ans-=a;q.push({cut(b,c)-cut(b,c+1),b,c+1});}cout<<ans;return 0;
}

CF(Div. 1 + Div. 2) E. Carrots for Rabbits(优先队列+贪心)相关推荐

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

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

  2. E. Carrots for Rabbits(贪心)

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

  3. Codeforces1428 E. Carrots for Rabbits(贪心+堆)

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

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

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

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

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

  6. cf edu #132 Div.2

    cf edu #132 Div. 2 文章目录 cf edu #132 Div. 2 [A. Three Doors](https://codeforces.com/contest/1709/prob ...

  7. Codeforces Round #504 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final)切题报告(A-B题)

    这是我第二次参加CF比赛,也是第一次写博客,写得不好,望各位大佬海涵. A. Single Wildcard Pattern Matching 原题链接 这道题,这是难到让人无法直视,太水了. 题目大 ...

  8. html css样式div属性,div css

    DIV+CSS是WEB设计标准,它是一种网页的布局方法.与传统中通过表格(table)布局定位的方式不同,它可以实现网页页面内容与表现相分离.提起DIV+CSS组合,还要从XHTML说起.XHTML是 ...

  9. xHTML+div布局:三个div,两边div宽度固定,中间div宽度自适应

    xHTML+div经常考题:三个div,两边div宽度固定,中间div宽度自适应. 和大家分享一个实现方式: 1.html代码 1 <div class="dyleft"&g ...

  10. html div套div,Web前端开发技术之Div+Css基础

    今天我们的课程内容有: CSS在页面风格设计中的作用 多个HTML页面调用一个CSS文件 DIV的创建与应用 用DIV+CSS的方式来写HTML页面 传统HTML的缺点和现在Css的优势Html的不足 ...

最新文章

  1. C#2.0实例程序STEP BY STEP--实例二:数据类型
  2. 干货满满:详解四组遍历数组
  3. mysql 2053_php – MySql一般错误:2053
  4. 搞了多年管理软件,总算说清楚了什么是好软件
  5. 被360整的体无完肤,我真的怒了!
  6. 超越界限,定义未来-- HP刀片工作站WS460c Gen9无惧4K挑战
  7. 图文:2010中国计算机网络安全年会启明星辰展台
  8. DataTable增加行
  9. php中引用的真正理解-变量引用、函数引用、对象引用
  10. c语言学生综合测评系统_学生综合评价系统
  11. 【网络教程】Windows字体发虚,字体不清晰怎么办?
  12. python源代码编译后的文件扩展名-python源代码被解释器转换后的格式是什么?
  13. android打印机驱动4521,三星scx4521f驱动下载
  14. [工具:iperf吞吐率测试工具 ]安装以及使用
  15. Excel如何将一列数据转为一行
  16. 从零搭建vue-ssr详细介绍
  17. 网络基础 IP协议 子网划分 子网汇总 超网 无类间路由超详细介绍
  18. Unity android平台读取文件
  19. Linux学习:文件和用户管理——文件管理命令
  20. Python常用设计模式—创建型模式

热门文章

  1. 全球神秘失踪--多维世界或时空扭曲解谜
  2. opengl和vulkan
  3. 基于机器学习的恶意软件检测(二)
  4. Linux系统编程 复习笔记
  5. 论文翻译:2021_语音增强模型压缩_Towards model compression for deep learning based speech enhancement...
  6. 手电筒安卓_安卓实用小工具!智能工具箱特别版本安卓软件
  7. python中tk的用法_python3.0 tk的使用
  8. 2020:VL-BERT: Pre-training of generic visual-linguistic representation
  9. 旅游行业数据可视化怎么做?快试试Smartbi一站式数据分析工具
  10. Django中间件配合Vue拦截器的简单使用