CF(Div. 1 + Div. 2) E. Carrots for Rabbits(优先队列+贪心)
原题链接
题意:
给你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(优先队列+贪心)相关推荐
- Codeforces Raif Round 1 (Div. 1 + Div. 2) E. Carrots for Rabbits(贪心)
传送门 题目大意 给出nnn个萝卜,现在需要分成长度为正整数的若干个萝卜,定义每个长度为xxx的胡萝卜贡献为x2x^2x2,问最小的贡献是多少. 解题思路 手玩一下样例,还是不难得出对于一个胡萝卜若需 ...
- E. Carrots for Rabbits(贪心)
题意: 有n个萝卜 ,每根萝卜长度不一样,现在将这些萝卜分为k段 这k根萝卜每根萝卜的花费是长度的平方,求最小的花费. 思路: 原本想的是放进将萝卜放进大根堆,然后取最大的对半分,其实这样是不正确的, ...
- Codeforces1428 E. Carrots for Rabbits(贪心+堆)
题意: 解法: 要让一个数切割之后权值最小,那么一定是均等切割.先计算出总权值, 将所有数以{总大小,切割次数}的形式丢尽堆中, 因为题目要让总权值最小,那么优先取出:再切割一次,权值变化更大的即可. ...
- codeforces 1428E. Carrots for Rabbits(贪心(非常优秀的贪心题),结构体重载运算符)
题目链接:https://codeforces.ml/contest/1428/problem/E 题意:给定n个数,要求将这些数拆分为k个数,是这些数的平方和最小. 题解:结构体,一开始想到的是每次 ...
- codeforces(E. Carrots for Rabbits)贪心
题目链接 给你n个数,每个数再被切分若干份(整数),比如5可以切分为2.3或2.2.1等 通过切割将n个数变成k个数,使这k个数的平方和最小. 一开始是想将所有数放在一个优先队列里,每次取出最大的一分 ...
- cf edu #132 Div.2
cf edu #132 Div. 2 文章目录 cf edu #132 Div. 2 [A. Three Doors](https://codeforces.com/contest/1709/prob ...
- Codeforces Round #504 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final)切题报告(A-B题)
这是我第二次参加CF比赛,也是第一次写博客,写得不好,望各位大佬海涵. A. Single Wildcard Pattern Matching 原题链接 这道题,这是难到让人无法直视,太水了. 题目大 ...
- html css样式div属性,div css
DIV+CSS是WEB设计标准,它是一种网页的布局方法.与传统中通过表格(table)布局定位的方式不同,它可以实现网页页面内容与表现相分离.提起DIV+CSS组合,还要从XHTML说起.XHTML是 ...
- xHTML+div布局:三个div,两边div宽度固定,中间div宽度自适应
xHTML+div经常考题:三个div,两边div宽度固定,中间div宽度自适应. 和大家分享一个实现方式: 1.html代码 1 <div class="dyleft"&g ...
- html div套div,Web前端开发技术之Div+Css基础
今天我们的课程内容有: CSS在页面风格设计中的作用 多个HTML页面调用一个CSS文件 DIV的创建与应用 用DIV+CSS的方式来写HTML页面 传统HTML的缺点和现在Css的优势Html的不足 ...
最新文章
- C#2.0实例程序STEP BY STEP--实例二:数据类型
- 干货满满:详解四组遍历数组
- mysql 2053_php – MySql一般错误:2053
- 搞了多年管理软件,总算说清楚了什么是好软件
- 被360整的体无完肤,我真的怒了!
- 超越界限,定义未来-- HP刀片工作站WS460c Gen9无惧4K挑战
- 图文:2010中国计算机网络安全年会启明星辰展台
- DataTable增加行
- php中引用的真正理解-变量引用、函数引用、对象引用
- c语言学生综合测评系统_学生综合评价系统
- 【网络教程】Windows字体发虚,字体不清晰怎么办?
- python源代码编译后的文件扩展名-python源代码被解释器转换后的格式是什么?
- android打印机驱动4521,三星scx4521f驱动下载
- [工具:iperf吞吐率测试工具 ]安装以及使用
- Excel如何将一列数据转为一行
- 从零搭建vue-ssr详细介绍
- 网络基础 IP协议 子网划分 子网汇总 超网 无类间路由超详细介绍
- Unity android平台读取文件
- Linux学习:文件和用户管理——文件管理命令
- Python常用设计模式—创建型模式
热门文章
- 全球神秘失踪--多维世界或时空扭曲解谜
- opengl和vulkan
- 基于机器学习的恶意软件检测(二)
- Linux系统编程 复习笔记
- 论文翻译:2021_语音增强模型压缩_Towards model compression for deep learning based speech enhancement...
- 手电筒安卓_安卓实用小工具!智能工具箱特别版本安卓软件
- python中tk的用法_python3.0 tk的使用
- 2020:VL-BERT: Pre-training of generic visual-linguistic representation
- 旅游行业数据可视化怎么做?快试试Smartbi一站式数据分析工具
- Django中间件配合Vue拦截器的简单使用