传送门
本题的贪心十分巧妙,我们考虑将所有数字的划分状态表示为(x,cur,v)(x,cur,v)(x,cur,v)的形式,xxx代表数字值,curcurcur为当前xxx被分成的份数,vvv代表从cur−1cur-1cur−1份到curcurcur份的时候对ansansans的减少量。

ansansans初始化为所有数字的平方和,那么我们每次都选择减去最大的vvv即可,总共可以减k−nk-nk−n次,顺便更新(x,cur,v)(x,cur,v)(x,cur,v)到(x,cur+1,v′)(x,cur+1,v')(x,cur+1,v′)。

vvv也很好计算,设函数g(x,cur)g(x,cur)g(x,cur)代表将xxx划分为curcurcur份的时候对应的平方和的最小值,那么vvv就是g(x,cur−1)−g(x,cur)g(x,cur-1)-g(x,cur)g(x,cur−1)−g(x,cur)。

struct Node{ll x,cur,v;bool operator <(const Node a)const{return v<a.v;}
};
int n,k,nk;priority_queue<Node>q;
ll g(int x,int k){ll d=x/k,res=x%k;return d*d*(k-res)+(d+1)*(d+1)*res;
}
int main(){n=rd(),k=rd();nk=k-n;ll ans=0;FOR(i,1,n+1){ll u=rd();q.push(Node{u,2,g(u,1)-g(u,2)});ans+=u*u;}FOR(i,0,nk){Node u=q.top();q.pop();ans-=u.v;u.v=g(u.x,u.cur)-g(u.x,u.cur+1);u.cur++;q.push(u);}printf("%lld\n",ans);
}

acm-(贪心)Codeforces Raif Round 1 (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. Codeforces Raif Round 1 (Div. 1 + Div. 2) E. Carrots for Rabbits(优先队列+贪心)

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

  3. 贪心 ---- Codeforces Global Round 8,B. Codeforces Subsequences[贪心,贪的乘法原理]

    题目链接 给出字符串,统计子串(子串字母可以跳跃)是codeforces的数量. 本题要求,给出子串最少数量k,构造字符串s,要求字符串s包含的字母数量最少,输出这个最少的字符串s. 题目要求是至少有 ...

  4. Codeforces Edu Round 68 (Rated for Div. 2)

    比较水的一场. 题目链接:https://codeforces.com/contest/1194 A: 秒懂跟x没关系,答案就是2n. B: 因为n*m<=4e5,统计每行每列点的数量后直接O( ...

  5. Codeforces Edu Round 64 (Rated for Div. 2)

    本来在快乐写题的,突然A数据炸了,全场重测,unrated-- 昨晚的题也有点毒,不过总体来说还算简单. A: 一开始我也wa on 3了,仔细想想就会发现有重点的情况. 比如n==3, 3 1 2. ...

  6. Educational Codeforces Round 75 (Rated for Div. 2) E2. Voting (Hard Version) 贪心

    传送门 文章目录 题意: 思路: 题意: n≤2e5,m≤n,p≤1e9n\le2e5,m\le n,p\le 1e9n≤2e5,m≤n,p≤1e9 思路: 首先需要发现一些性质,假设preipre_ ...

  7. Educational Codeforces Round 106 (Rated for Div. 2)(A ~ E)题解(每日训练 Day.16 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 Educational Codeforces Round 106 (Rated for Div. ...

  8. Educational Codeforces Round 114 (Rated for Div. 2) (A ~ F)全题解

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Educational Codeforces Round 114 (Rated for Div. 2) ...

  9. Educational Codeforces Round 90 (Rated for Div. 2)(A, B, C, D, E)

    Educational Codeforces Round 90 (Rated for Div. 2) Donut Shops 思路 分三种情况: a==c/ba == c / ba==c/b这个时候两 ...

最新文章

  1. 第一次接觸sbt會遇到的
  2. linux 自动连接无限,hotplug应用实例:自动连接无线网
  3. React v16版本 源码解读
  4. 12006.eeprom之M24C02
  5. Float Protocol将于5月7日至10日进行FLOAT代币创世发布
  6. Docker方式安装SonarQube
  7. Java 实现邮箱验证
  8. MQL5由简到繁系列一
  9. 教你如何在github上提交代码(Window10示例,内含2021年github提交机制的更新变动)
  10. 中国牛市还会来吗,中国牛市啥时候到?
  11. linux 7.5防火墙配置,Centos7.5 firewalld防火墙配置
  12. Roaring Bitmap 更好的位图压缩算法
  13. APP Bomb Lab
  14. EMCP  物联网云平台萤石云密钥功能使用手册
  15. 响应式圣经:10W字,实现Spring响应式编程自由
  16. Vue项目实战 —— 后台管理系统( pc端 )
  17. 解决adobe reader XI 打开后闪退问题,亲测有效
  18. Java基础之map总结
  19. xposed插件微信机器人
  20. git push 之后如何不用回滚或者abandoned方式等修改已提交代码呢?

热门文章

  1. 【K8S】ctr和crictl的区别
  2. 推荐系统-排序层:主流CTR模型综述【Click-Through-Rate,点击率预估,指精排层的排序】【CTR 模型的输入(即训练数据)是:大量成对的 (features, label)数据】
  3. 浏览器全屏和pc显示器全屏
  4. 发光二极管的keil代码c语言,用Keil点亮一个发光二极管
  5. 合肥python培训周末
  6. matlab中文帮助_MATLAB数据及图像处理与机器学习培训
  7. 电脑黑屏只有鼠标能动怎么办???
  8. 【计算机二级等级考试】公共基础知识-学习笔记
  9. 纯原生 js 简易 实现 鼠标拖尾效果
  10. web,java,poi导出excel